{
  "schemaVersion": 1,
  "rulesVersion": "curriculum-quality-v2",
  "generatedAt": "2026-06-01T21:13:21.801Z",
  "generatedBy": "app/scripts/generateCurriculumQualityStatus.ts",
  "sources": {
    "canonicalRoot": "curricula/DE/Gymnasium/canonical",
    "sourceExtractionRoot": "curricula/DE/Gymnasium/input",
    "semanticAtomicityRoot": "curricula/DE/Gymnasium/quality/semantic-atomicity",
    "memoryCardReviewRoot": "curricula/DE/Gymnasium/quality/memory-card-review",
    "compositionViewRoot": "curricula/DE/Gymnasium/composition-views",
    "acceptedWarningsPath": "docs/qa-ci/applicability-accepted-warnings.json",
    "sourceLandscapeRegistryPath": "curricula/DE/Gymnasium/provenance/source-landscape-registry.json",
    "sourceGoalMembershipRegistryPath": "curricula/DE/Gymnasium/provenance/source-goal-membership-registry.json",
    "sourceGoalClosureRegistryPath": "curricula/DE/Gymnasium/provenance/source-goal-closure-registry.json",
    "surrogateEvidencePath": "curricula/DE/Gymnasium/provenance/canonical-goal-surrogate-evidence-registry.json"
  },
  "summary": {
    "curricula": 21,
    "maturity": {
      "M0": 11,
      "M1": 0,
      "M2": 0,
      "M3": 0,
      "M4": 0,
      "M5": 0,
      "M6": 10
    },
    "ruleStatus": {
      "pass": 205,
      "warn": 18,
      "fail": 4,
      "not_configured": 49
    }
  },
  "ruleCatalog": [
    {
      "id": "CQR-000",
      "label": "Source inventory ingestion",
      "category": "applicability",
      "maturityTarget": "M1",
      "description": "Original source inventories are readable, linked to official HTTP(S) source URLs, and their extracted goals are registered in the source membership/closure ledger."
    },
    {
      "id": "CQR-001",
      "label": "Basic graph integrity",
      "category": "graph",
      "maturityTarget": "M0",
      "description": "Goal IDs, local references, self-reference guards, and direct DAG checks are clean."
    },
    {
      "id": "CQR-002",
      "label": "Explicit type consistency",
      "category": "graph",
      "maturityTarget": "M0",
      "description": "Stored type metadata agrees with structural atomic/cluster classification."
    },
    {
      "id": "CQR-003",
      "label": "Bundesland atomic coverage",
      "category": "applicability",
      "maturityTarget": "M2",
      "description": "Bundesland composition-view source-coverage atoms are source-backed and registered source original goals are fully covered by view atoms."
    },
    {
      "id": "CQR-004",
      "label": "Course-level mapping consistency",
      "category": "applicability",
      "maturityTarget": "M2",
      "description": "Upper-secondary GK/LK source-goal levels map only to canonical goals with compatible GK/LK tags; unspecified upper-secondary source goals default to GK/LK unless an LK-only decision is explicitly reviewed."
    },
    {
      "id": "CQR-005",
      "label": "Source-goal count plausibility",
      "category": "applicability",
      "maturityTarget": "M2",
      "description": "Source-extraction goal counts are plausible against the reviewed HE/BW peer baseline or explicitly reviewed when they deviate strongly."
    },
    {
      "id": "CQR-101",
      "label": "Effective full route coverage",
      "category": "route",
      "maturityTarget": "M3",
      "description": "Configured route scopes connect motivation anchors to terminal autonomy goals through effective requires."
    },
    {
      "id": "CQR-102",
      "label": "Atomic direct route coverage",
      "category": "route",
      "maturityTarget": "M3",
      "description": "Configured route scopes connect motivation anchors to terminal autonomy goals through direct atomic requires."
    },
    {
      "id": "CQR-103",
      "label": "No scoped cluster requires",
      "category": "route",
      "maturityTarget": "M3",
      "description": "Configured route scopes no longer depend on cluster-level requires for ordinary didactic sequencing."
    },
    {
      "id": "CQR-104",
      "label": "Route endpoint composition visibility",
      "category": "route",
      "maturityTarget": "M3",
      "description": "Configured route scopes expose motivation anchors and terminal autonomy goals in relevant learner-facing composition views."
    },
    {
      "id": "CQR-201",
      "label": "Terminal autonomy exam data",
      "category": "assessment",
      "maturityTarget": "M4",
      "description": "Terminal autonomy goals in configured scopes are exam-mode-capable or explicitly reviewed."
    },
    {
      "id": "CQR-301",
      "label": "Semantic atomicity review freshness",
      "category": "review",
      "maturityTarget": "M5",
      "description": "Configured semantic-atomicity ledgers are complete, current, and free of unresolved review queue entries."
    },
    {
      "id": "CQR-302",
      "label": "Memory-card decision trace",
      "category": "review",
      "maturityTarget": "M6",
      "description": "Configured memory-card ledgers explicitly decide for ordinary atomic goals whether memorization is justified; every kept primary card traces to such a decision, every existing memory deck remains traced, and configured composition views expose referenced memory nodes where memory-required goals are visible."
    },
    {
      "id": "CQR-401",
      "label": "Composition view availability",
      "category": "view",
      "maturityTarget": "M5",
      "description": "The curriculum has at least one reviewed learner-facing composition view."
    },
    {
      "id": "CQR-501",
      "label": "Applicability warning debt",
      "category": "applicability",
      "maturityTarget": "M5",
      "description": "Active applicability warnings are resolved and accepted warning records still match current findings."
    }
  ],
  "curricula": [
    {
      "landscapeId": "08a43a1b-d97e-522c-9dfa-c950a493364e",
      "title": "Biologie (Gymnasium, DE)",
      "subject": "Biologie",
      "frameworkId": "canonical-gymnasium-biology",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_BIOLOGIE.de.json",
      "maturity": "M6",
      "goals": 430,
      "atomicGoals": 379,
      "clusterGoals": 51,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 357,
        "rawAtomicGoals": 379,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 355,
        "maxSourceBackedAtomicGoals": 355,
        "maxAtomicCoveragePercent": 99.4,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 4,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 999,
        "sourceMappedToViewAtomicGoals": 999,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 999,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 999,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 999,
        "sourceFullyCoveredOriginalGoals": 999,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 156,
            "visibleAtomicGoals": 127,
            "visibleClusterGoals": 29,
            "viewAtomicGoals": 127,
            "sourceBackedAtomicGoals": 127,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 111,
            "sourceMappedToViewAtomicGoals": 111,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 111,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 111,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 111,
            "sourceFullyCoveredOriginalGoals": 111,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 127,
            "atomicCoveragePercent": 35.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 430,
            "visibleAtomicGoals": 355,
            "visibleClusterGoals": 75,
            "viewAtomicGoals": 355,
            "sourceBackedAtomicGoals": 355,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 216,
            "sourceMappedToViewAtomicGoals": 216,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 216,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 216,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 216,
            "sourceFullyCoveredOriginalGoals": 216,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 99.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 430,
            "visibleAtomicGoals": 355,
            "visibleClusterGoals": 75,
            "viewAtomicGoals": 355,
            "sourceBackedAtomicGoals": 355,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 222,
            "sourceMappedToViewAtomicGoals": 222,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 222,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 222,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 222,
            "sourceFullyCoveredOriginalGoals": 222,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 99.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 160,
            "visibleAtomicGoals": 129,
            "visibleClusterGoals": 31,
            "viewAtomicGoals": 129,
            "sourceBackedAtomicGoals": 129,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 33,
            "sourceMappedToViewAtomicGoals": 33,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 33,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 33,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 33,
            "sourceFullyCoveredOriginalGoals": 33,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 36.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 160,
            "visibleAtomicGoals": 129,
            "visibleClusterGoals": 31,
            "viewAtomicGoals": 129,
            "sourceBackedAtomicGoals": 129,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 33,
            "sourceMappedToViewAtomicGoals": 33,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 33,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 33,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 33,
            "sourceFullyCoveredOriginalGoals": 33,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 36.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 172,
            "visibleAtomicGoals": 139,
            "visibleClusterGoals": 33,
            "viewAtomicGoals": 139,
            "sourceBackedAtomicGoals": 139,
            "surrogateBackedAtomicGoals": 2,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 124,
            "sourceMappedToViewAtomicGoals": 124,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 124,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 124,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 124,
            "sourceFullyCoveredOriginalGoals": 124,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 127,
            "atomicCoveragePercent": 38.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 182,
            "visibleAtomicGoals": 148,
            "visibleClusterGoals": 34,
            "viewAtomicGoals": 148,
            "sourceBackedAtomicGoals": 148,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 11,
            "sourceMappedToViewAtomicGoals": 11,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 11,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 11,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 11,
            "sourceFullyCoveredOriginalGoals": 11,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 41.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 178,
            "visibleAtomicGoals": 142,
            "visibleClusterGoals": 36,
            "viewAtomicGoals": 142,
            "sourceBackedAtomicGoals": 142,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 9,
            "sourceMappedToViewAtomicGoals": 9,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 9,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 9,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 9,
            "sourceFullyCoveredOriginalGoals": 9,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 39.8,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 112,
            "visibleAtomicGoals": 95,
            "visibleClusterGoals": 17,
            "viewAtomicGoals": 95,
            "sourceBackedAtomicGoals": 95,
            "surrogateBackedAtomicGoals": 2,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 70,
            "sourceMappedToViewAtomicGoals": 70,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 70,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 70,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 70,
            "sourceFullyCoveredOriginalGoals": 70,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 92,
            "atomicCoveragePercent": 26.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 151,
            "visibleAtomicGoals": 117,
            "visibleClusterGoals": 34,
            "viewAtomicGoals": 117,
            "sourceBackedAtomicGoals": 117,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 7,
            "sourceMappedToViewAtomicGoals": 7,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 7,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 7,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 7,
            "sourceFullyCoveredOriginalGoals": 7,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 118,
            "atomicCoveragePercent": 32.8,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 202,
            "visibleAtomicGoals": 166,
            "visibleClusterGoals": 36,
            "viewAtomicGoals": 166,
            "sourceBackedAtomicGoals": 166,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 12,
            "sourceMappedToViewAtomicGoals": 12,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 12,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 12,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 12,
            "sourceFullyCoveredOriginalGoals": 12,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 167,
            "atomicCoveragePercent": 46.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 128,
            "visibleAtomicGoals": 101,
            "visibleClusterGoals": 27,
            "viewAtomicGoals": 101,
            "sourceBackedAtomicGoals": 101,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 47,
            "sourceMappedToViewAtomicGoals": 47,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 47,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 47,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 47,
            "sourceFullyCoveredOriginalGoals": 47,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 100,
            "atomicCoveragePercent": 28.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 75,
            "visibleAtomicGoals": 61,
            "visibleClusterGoals": 14,
            "viewAtomicGoals": 61,
            "sourceBackedAtomicGoals": 61,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 75,
            "sourceMappedToViewAtomicGoals": 75,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 75,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 75,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 75,
            "sourceFullyCoveredOriginalGoals": 75,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 60,
            "atomicCoveragePercent": 17.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 220,
            "visibleAtomicGoals": 180,
            "visibleClusterGoals": 40,
            "viewAtomicGoals": 180,
            "sourceBackedAtomicGoals": 180,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 10,
            "sourceMappedToViewAtomicGoals": 10,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 10,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 10,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 10,
            "sourceFullyCoveredOriginalGoals": 10,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 181,
            "atomicCoveragePercent": 50.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 222,
            "visibleAtomicGoals": 182,
            "visibleClusterGoals": 40,
            "viewAtomicGoals": 182,
            "sourceBackedAtomicGoals": 182,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 11,
            "sourceMappedToViewAtomicGoals": 11,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 11,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 11,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 11,
            "sourceFullyCoveredOriginalGoals": 11,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 183,
            "atomicCoveragePercent": 51,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 223,
            "visibleAtomicGoals": 183,
            "visibleClusterGoals": 40,
            "viewAtomicGoals": 183,
            "sourceBackedAtomicGoals": 183,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 8,
            "sourceMappedToViewAtomicGoals": 8,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 8,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 8,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 8,
            "sourceFullyCoveredOriginalGoals": 8,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 184,
            "atomicCoveragePercent": 51.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 17,
        "completeSources": 17,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "4ed0e12e-4cf3-5a8b-8b3b-ab39cfc894bb",
            "title": "Biologie Sekundarstufe I (Brandenburg, gemeinsamer BE/BB-Rahmenlehrplan 2015 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/source-extraction/DE_BB_BIOLOGIE_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-RLP-BIOLOGIE-SEKI-2015",
                "title": "Rahmenlehrplan für die Jahrgangsstufen 1-10 der Berliner und Brandenburger Schulen, Teil C Biologie, Jahrgangsstufen 7-10, 2015",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Biologie_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Biologie_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 33,
            "passages": 0,
            "mappedSourceGoals": 33,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 0,
            "otherMappings": 33,
            "sourceGoalGranularity": {
              "averageWords": 16.939393939393938,
              "p90Words": 19,
              "maxWords": 22,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Brandenburg-Biologie-Dokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Biologie_2015_11_10.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle relevanten Brandenburg-Biologie-Passagen wurden extrahiert",
                    "passed": true,
                    "details": "33/33 Rahmenlehrplan-Biologie-Sek-I-Source-Ziele."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher Quelle",
                    "passed": true,
                    "details": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Biologie_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Brandenburg-Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "33 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "33/33 Rahmenlehrplan-Biologie-Sek-I-Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "33 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "33/33 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 33/33; Mappings: 33/33; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "226bcd50-df1a-5ea5-8b20-d88e9604f321",
            "title": "Biologie Sekundarstufe I (Berlin, gemeinsamer BE/BB-Rahmenlehrplan 2015 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/source-extraction/DE_BE_BIOLOGIE_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-RLP-BIOLOGIE-SEKI-2015",
                "title": "Rahmenlehrplan für die Jahrgangsstufen 1-10 der Berliner und Brandenburger Schulen, Teil C Biologie, Jahrgangsstufen 7-10, 2015",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Biologie_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Biologie_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 33,
            "passages": 0,
            "mappedSourceGoals": 33,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 0,
            "otherMappings": 33,
            "sourceGoalGranularity": {
              "averageWords": 16.939393939393938,
              "p90Words": 19,
              "maxWords": 22,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Berlin-Biologie-Dokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Biologie_2015_11_10.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle relevanten Berlin-Biologie-Passagen wurden extrahiert",
                    "passed": true,
                    "details": "33/33 Rahmenlehrplan-Biologie-Sek-I-Source-Ziele."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher Quelle",
                    "passed": true,
                    "details": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Biologie_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Berlin-Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "33 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "33/33 Rahmenlehrplan-Biologie-Sek-I-Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "33 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "33/33 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 33/33; Mappings: 33/33; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4cf4d9ae-ec61-51aa-868a-493e799cc1fa",
            "title": "DE-BW - Biologie Sekundarstufe I (Bildungsplan 2016 Gymnasium, V2 2022 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Biologie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_BIOLOGIE_SEKI_BP2016_V2.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BW-BP2016-GYM-BIOLOGIE-V2-2022",
                "title": "Bildungsplan 2016 Gymnasium Biologie - ueberarbeitete Fassung vom 08.03.2022",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_BIO_V2.pdf",
                "url": "https://www.bildungsplaene-bw.de/%2CLde/BP2016BW_ALLG_GYM_BIO.V2",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BW-BP2016-GYM-BNT-2016",
                "title": "Bildungsplan 2016 Gymnasium Biologie, Naturphaenomene und Technik (BNT)",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_BNT.pdf",
                "url": "https://www.bildungsplaene-bw.de/%2CLde/BP2016BW_ALLG_GYM_BNT",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 111,
            "passages": 15,
            "mappedSourceGoals": 111,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 110,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "111 Source-Ziele aus Prozesskompetenzen, BNT-5/6-Prerequisites und den Biologie-Standards der Klassen 7/8 und 9/10."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.882882882882883,
              "p90Words": 11,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Biologie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_BIO_V2.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "BW-Sek-I-Biologie-Themen sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "15/15 Abschnitte."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den BW-Sek-I-Biologiepassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "111 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "111 Source-Ziele liegen vor; MAPPING-3 ist vollständig reviewed."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 111/111; Mappings: 111/111; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "357a7003-b636-570e-a0bd-6bb63518d2f6",
            "title": "DE-BY - Biologie Gymnasium (Bayern, LehrplanPLUS Source-Extraction)",
            "jurisdiction": "DE-BY",
            "subject": "Biologie",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_BIOLOGIE_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "LEHRPLANPLUS_BIOLOGIE_GYMNASIUM",
                "title": "LehrplanPLUS Gymnasium Bayern - Biologie",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Biologie.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/biologie",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 222,
            "passages": 32,
            "mappedSourceGoals": 222,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 192,
            "partialMappings": 30,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Identische Kompetenzformulierungen aus parallelen GA/EA-Profilen wurden auf 222 repraesentative Source-Ziele normalisiert; 32 Originalpassagen und 362 Fundstellen bleiben ueber sourceOccurrences erhalten."
            },
            "sourceGoalGranularity": {
              "averageWords": 21.382882882882882,
              "p90Words": 32,
              "maxWords": 43,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte LehrplanPLUS-Biologie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Biologie.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Alle zieltragenden LehrplanPLUS-Biologie-Lernbereiche sind als Passagen extrahiert",
                    "passed": true,
                    "details": "Erfasst: 32/32 Passagen."
                  },
                  {
                    "id": "no-legacy-snapshot-counted",
                    "label": "Kein alter Pilot-Quellsnapshot wird als Passage-Extraction gewertet",
                    "passed": true,
                    "details": "Verwendet wird curricula/DE/Gymnasium/input/BY/gymnasium/Biologie.json als strukturierte LehrplanPLUS-Quelle; alte Mappingdateien werden nur als M3-Seed verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den LehrplanPLUS-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "222/362 normalisierte Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-text-present",
                    "label": "Jedes Source-Ziel enthält den LehrplanPLUS-Originaltext",
                    "passed": true,
                    "details": "Ohne Text: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "222 Source-Ziele; Vergleich HE/BW SEKI (111/66) + SEKII (150); Median 239; zulässiger 30%-Median-Korridor 167-310; Abweichung vom Median -7%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "222 Source-Ziele liegen vor; MAPPING-3 kann gegen diese Source-Extraction-IDs laufen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "222/222 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 222/222; Mappings: 222/222; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4d233e6e-95f0-5058-8319-6777bd16c7cf",
            "title": "DE-HB - Biologie Sekundarstufe I (Bremen, Bildungsplan 2006/2022 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Biologie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/source-extraction/DE_HB_BIOLOGIE_SEKI_BILDUNGSPLAN_2006_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB_NW_GYM_2006",
                "title": "Bildungsplan Naturwissenschaften, Biologie, Chemie, Physik Gymnasium 5-10 Bremen 2006",
                "path": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_10_2006.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/06-12-06_nat_gy.pdf",
                "landingUrl": "https://www.lis.bremen.de/schulqualitaet/bildungsplaene/sekundarbereich-i-21953",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "HB_NW_GYM_2022_RESTRICTION",
                "title": "Anlage 239/2022 zur eingeschränkten Gültigkeit auf Jahrgangsstufen 5-9",
                "path": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_9_Einschraenkungen_2022.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_Naturwiss_2006_inhalt_Einschr%C3%A4nkungen.pdf",
                "landingUrl": "https://www.lis.bremen.de/schulqualitaet/bildungsplaene/sekundarbereich-i-21953",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 70,
            "passages": 6,
            "mappedSourceGoals": 70,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 68,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "70 Source-Ziele; plausibel für Bremen Sek-I-Biologie, weil die 2022-Einschränkung die Sek-I-Spur auf Jahrgänge 5-9 begrenzt und mehrere alte Kapitel in die Gymnasiale Oberstufe verschiebt."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.057142857142857,
              "p90Words": 12,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Bremer Sek-I-Biologie-Quellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_10_2006.pdf; curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_9_Einschraenkungen_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle aktuell gültigen Bremer Sek-I-Biologie-Themen sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "6/6 Themen; Bau und Leistungen von Zellen sowie vertiefte Enzym-/Stoffwechselteile sind laut Anlage 239/2022 Oberstufe."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quellen: Bildungsplan Naturwissenschaften 2006 und Anlage 239/2022."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Bremer Sek-I-Biologie-Kompetenzbullets wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "70 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "70 Source-Ziele; Vergleich HE/BW SEKI (111/66); Median 89; zulässiger 30%-Median-Korridor 62-115; Abweichung vom Median -21%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "70 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "70/70 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 70/70; Mappings: 70/70; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "3e56aa75-c76c-4de5-883b-0aac98297846",
            "title": "Biologie Oberstufe (Hessen, KC 2024 Source-Extraction)",
            "jurisdiction": "DE-HE",
            "subject": "Biologie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_BIOLOGIE_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "KC2024_BIOLOGIE_SEKII",
                "title": "Kerncurriculum Biologie gymnasiale Oberstufe Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_BIOLOGIE.de.json.snapshot",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-biologie.pdf",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 150,
            "passages": 19,
            "mappedSourceGoals": 150,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 150,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "19 fachliche Oberstufen-Themenpassagen mit 150 direkten Kompetenzzielen; Motivation, Uebungen und Abiturvorschlaege bleiben ausserhalb des Source-Inventars."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.086666666666666,
              "p90Words": 14,
              "maxWords": 18,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Hessen-Biologie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_BIOLOGIE.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Alle fachlichen Biologie-Themenpassagen sind extrahiert",
                    "passed": true,
                    "details": "Erfasst: 19/19 Passagen."
                  },
                  {
                    "id": "non-curricular-nodes-excluded",
                    "label": "Motivation, Uebungen und Pruefungsvorschlaege werden nicht als Source-Lehrplanpassagen gewertet",
                    "passed": true,
                    "details": "Das Source-Inventar enthaelt nur direkte Kompetenzziele fachlicher Themenpassagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Biologie-Themenpassagen wurden granulare Source-Ziele erzeugt",
                    "passed": true,
                    "details": "150 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "150/150 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 150/150; Mappings: 150/150; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "71438941-0ceb-46ee-ad31-773cee700779",
            "title": "Biologie Sekundarstufe I (Hessen, G9 Source-Extraction)",
            "jurisdiction": "DE-HE",
            "subject": "Biologie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-extraction/DE_HE_BIOLOGIE_SEKI_G9.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "G9_BIOLOGIE_SEKI",
                "title": "Lehrplan Biologie Gymnasium Hessen G9",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-json/DE_HES_S_GYM_1_BIOLOGIE.de.json.snapshot",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g9-biologie.pdf",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 66,
            "passages": 16,
            "mappedSourceGoals": 66,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 66,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "16 fachliche Sek-I-Themenpassagen mit 66 direkten Kompetenzzielen; Orientierungsknoten bleibt ausserhalb des Source-Inventars."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.333333333333334,
              "p90Words": 13,
              "maxWords": 17,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Hessen-Biologie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-json/DE_HES_S_GYM_1_BIOLOGIE.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Alle fachlichen Biologie-Themenpassagen sind extrahiert",
                    "passed": true,
                    "details": "Erfasst: 16/16 Passagen."
                  },
                  {
                    "id": "non-curricular-nodes-excluded",
                    "label": "Motivation, Uebungen und Pruefungsvorschlaege werden nicht als Source-Lehrplanpassagen gewertet",
                    "passed": true,
                    "details": "Das Source-Inventar enthaelt nur direkte Kompetenzziele fachlicher Themenpassagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Biologie-Themenpassagen wurden granulare Source-Ziele erzeugt",
                    "passed": true,
                    "details": "66 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "66/66 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 66/66; Mappings: 66/66; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a888e177-da7a-5466-8f93-6d39231be0ea",
            "title": "Biologie Sekundarstufe I (Hamburg Bildungsplan Gymnasium 2011 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_BIOLOGIE_SEKI_BILDUNGSPLAN_2011.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-HH-BIOLOGIE-SEKI-BILDUNGSPLAN-2011",
                "title": "Bildungsplan Gymnasium Sekundarstufe I: Biologie, Hamburg 2011",
                "path": "curricula/DE/Gymnasium/input/HH/biologie-gym-seki-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123418/3f001f63072b1ee4259a0f2630229083/biologie-gym-seki-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 7,
            "passages": 0,
            "mappedSourceGoals": 7,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 7,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "7 fachbereichsnahe Source-Ziele; Hamburg Biologie Sek I ist als kompakter Bildungsplan mit sechs Inhaltsbereichen plus prozessbezogenen Kompetenzen formuliert."
            },
            "sourceGoalGranularity": {
              "averageWords": 23.571428571428573,
              "p90Words": 25,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburger Biologie-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/biologie-gym-seki-data.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle Hamburger Biologie-Inhaltsbereiche wurden extrahiert",
                    "passed": true,
                    "details": "7/7 Bereiche: Prozesskompetenzen, Zellen, Organismen, Lebensräume, Vererbung, Stammesgeschichte, Biologie des Menschen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "https://www.hamburg.de/resource/blob/123418/3f001f63072b1ee4259a0f2630229083/biologie-gym-seki-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Hamburger Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "7 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die Hamburger Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "Kompakte Bereichsstruktur statt feingranularer Bullet-Inventarisierung."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "7 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "7/7 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 7/7; Mappings: 7/7; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b8af8cde-68e3-5fb6-8bfb-99372267fdaf",
            "title": "Biologie Sekundarstufe I (Mecklenburg-Vorpommern Rahmenplan 2022 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_BIOLOGIE_SEKI_RAHMENPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-MV-BIOLOGIE-SEKI-RAHMENPLAN-2022",
                "title": "Rahmenplan für den Sekundarbereich I Gymnasium/Gesamtschule Biologie, Mecklenburg-Vorpommern 2022",
                "path": "curricula/DE/Gymnasium/input/MV/Biologie_Gymnasium_Gesamtschule_7_10.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_BIO_Gym_Ges_7-10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 12,
            "passages": 0,
            "mappedSourceGoals": 12,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 12,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "12 Source-Ziele; MV Biologie Sek I ist als jahrgangsbezogener Rahmenplan mit Prozessstandards und elf Inhaltsbloecken fuer Klassen 7-10 formuliert."
            },
            "sourceGoalGranularity": {
              "averageWords": 24.083333333333332,
              "p90Words": 27,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches MV-Biologie-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Biologie_Gymnasium_Gesamtschule_7_10.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle MV-Biologie-Standards und Inhaltsbloecke wurden extrahiert",
                    "passed": true,
                    "details": "12/12 Bereiche: Prozessstandards, Klasse 7 Mikroorganismen/Ernaehrung/Sexualerziehung, Klasse 8 Stoffwechsel/Immunitaet/Sinne-Nerven-Sucht, Klasse 9 Oekologie/Planet im Wandel, Klasse 10 Cytologie/Genetik/Evolution."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_BIO_Gym_Ges_7-10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den MV-Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "12 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die MV-Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "Ein Source-Ziel pro Standard- bzw. jahrgangsbezogenem Themenblock."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "12 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "12/12 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 12/12; Mappings: 12/12; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "0b27a054-e81e-5423-aa71-d3d8d9d8f0db",
            "title": "DE-NI - Biologie Sekundarstufe I (Niedersachsen, KC 2015 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Biologie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/source-extraction/DE_NI_BIOLOGIE_SEKI_KC2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-NATURWISSENSCHAFTEN-SEKI-2015-BIOLOGIE",
                "title": "Niedersachsen Kerncurriculum Naturwissenschaften Gymnasium Sekundarbereich I 2015",
                "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/kc_naturwissenschaften_gymnasium_sek_i_2015.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=18",
                "landingUrl": "https://cuvo.nibis.de/cuvo.php?k0_0=Fach&k0_1=Dokumentenart&p=search&v0_0=Naturwissenschaften&v0_1=Kerncurriculum",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 124,
            "passages": 18,
            "mappedSourceGoals": 124,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 4,
            "partialMappings": 120,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek I Biologie wird im gemeinsamen Naturwissenschaften-KC als 123 Einzelkompetenzen ueber prozessbezogene Kompetenzen und FW1-FW8 ausgewiesen; extrahiert wurden die Biologie-Tabellen S. 75-92, nicht der Anhang."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.298387096774194,
              "p90Words": 14,
              "maxWords": 22,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NI-Naturwissenschaften-Sek-I-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/kc_naturwissenschaften_gymnasium_sek_i_2015.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle Biologie-Prozess- und Fachwissenstabellen sind als Passagen vorhanden",
                    "passed": true,
                    "details": "18/18 Tabellen; fehlend: -"
                  },
                  {
                    "id": "appendix-excluded",
                    "label": "Anhang und Umsetzungsvorschläge wurden nicht als Source-Ziele extrahiert",
                    "passed": true,
                    "details": "Extraktionsfenster umfasst die Biologie-Kompetenztabellen EG1-EG4, KK, BW und FW1-FW8 auf S. 75-92."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen Biologie-Kompetenz-Bullets erzeugt",
                    "passed": true,
                    "details": "124/124 Source-Ziele aus Fachwissen, Erkenntnisgewinnung, Kommunikation und Bewertung."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Biologie-Kompetenztabelle hat Source-Ziele",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Kompetenzüberschrift, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline-local-audit",
                    "label": "Auffällige Source-Ziel-Anzahl wurde fachlich plausibilisiert",
                    "passed": true,
                    "details": "123 liegt im erwartbaren Bereich, weil NI Biologie verbindliche Prozess- und Inhaltskompetenzen tabellarisch getrennt nach Jahrgangsbändern ausweist."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "124 Source-Ziele; Vergleich HE/BW SEKI (111/66); Median 89; zulässiger 30%-Median-Korridor 62-115; Abweichung vom Median 40%. Kritisch gepruefte Abweichung: NI Sek I Biologie wird im gemeinsamen Naturwissenschaften-KC als 123 Einzelkompetenzen ueber prozessbezogene Kompetenzen und FW1-FW8 ausgewiesen; extrahiert wurden die Biologie-Tabellen S. 75-92, nicht der Anhang."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "124 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "124/124 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 124/124; Mappings: 124/124; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7908e97d-5a4e-57ce-876f-78e121256991",
            "title": "Biologie Sekundarstufe I (Nordrhein-Westfalen KLP Gymnasium 2019 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/source-extraction/DE_NW_BIOLOGIE_SEKI_KLP2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-NW-BIOLOGIE-SEKI-KLP-2019",
                "title": "Kernlehrplan für die Sekundarstufe I Gymnasium in Nordrhein-Westfalen: Biologie, Heft 3413, 2019",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_bi_klp_-3413_2019_06_23_0.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_bi_klp_-3413_2019_06_23_0.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 11,
            "passages": 0,
            "mappedSourceGoals": 11,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 0,
            "otherMappings": 11,
            "sourceGoalGranularity": {
              "averageWords": 20.818181818181817,
              "p90Words": 22,
              "maxWords": 25,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Nordrhein-Westfalen-Biologie-Dokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_bi_klp_-3413_2019_06_23_0.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle relevanten Nordrhein-Westfalen-Biologie-Passagen wurden extrahiert",
                    "passed": true,
                    "details": "11/11 Kernlehrplan-Biologie-Sek-I-Kompetenzbereiche."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher Quelle",
                    "passed": true,
                    "details": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_bi_klp_-3413_2019_06_23_0.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Nordrhein-Westfalen-Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "11 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "11/11 Kernlehrplan-Biologie-Sek-I-Kompetenzbereiche."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "11 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "11/11 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 11/11; Mappings: 11/11; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "1fcb0808-0a16-5f33-8124-97c345f9903c",
            "title": "DE-RP - Biologie Sekundarstufe I (Rheinland-Pfalz, Lehrplan BCP 2014 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Biologie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/source-extraction/DE_RP_BIOLOGIE_SEKI_RAHMENLEHRPLAN_2014.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-BIO-SEKI-2014",
                "title": "Lehrplan Naturwissenschaftliche Fächer Biologie, Chemie, Physik Klassenstufen 7-10 Rheinland-Pfalz 2014",
                "path": "curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_I_Biologie_Physik_Chemie_2014.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?tx_rlpbase_download%5Bitem%5D=56515&type=432522",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 47,
            "passages": 12,
            "mappedSourceGoals": 47,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 45,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "47 Source-Ziele aus zwölf Biologie-Themenfeldern; analog zur bereits vorhandenen RP-Chemie-Extraction aus derselben amtlichen BCP-PDF. MAPPING-3 ist vollständig reviewed."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.127659574468085,
              "p90Words": 12,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Rheinland-Pfalz-Biologie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_I_Biologie_Physik_Chemie_2014.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete Rheinland-Pfalz-Biologie-Passagegruppen sind vorhanden",
                    "passed": true,
                    "details": "12 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_I_Biologie_Physik_Chemie_2014.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Rheinland-Pfalz-Biologie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "47 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "47 Source-Ziele; Vergleich HE/BW SEKI (111/66); Median 89; zulässiger 30%-Median-Korridor 62-115; Abweichung vom Median -47%. Kritisch gepruefte Abweichung: 47 Source-Ziele aus zwölf Biologie-Themenfeldern; analog zur bereits vorhandenen RP-Chemie-Extraction aus derselben amtlichen BCP-PDF. MAPPING-3 ist vollständig reviewed."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "47 Source-Ziele liegen vor; MAPPING-3 ist fachlich reviewed."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "47/47 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 47/47; Mappings: 47/47; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7b8cf796-04c9-5f04-856c-579ec6a95d12",
            "title": "Biologie Sekundarstufe I (Schleswig-Holstein Fachanforderungen 2023 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/SH/lower-secondary/source-extraction/DE_SH_BIOLOGIE_SEKI_FACHANFORDERUNGEN_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-SH-BIOLOGIE-SEKI-FACHANFORDERUNGEN-2023",
                "title": "Fachanforderungen Biologie: Allgemein bildende Schulen, Sekundarstufe I, Sekundarstufe II, 3. überarbeitete Auflage 2023",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Biologie_Sekundarstufe_2023_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/sh/faecher/biologie/fachanforderungen.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Biologie%20Sekundarstufe%20%282023%2C%20barrierearm%29.pdf&cid=16888",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 9,
            "passages": 0,
            "mappedSourceGoals": 9,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 0,
            "otherMappings": 9,
            "sourceGoalGranularity": {
              "averageWords": 19.333333333333332,
              "p90Words": 22,
              "maxWords": 26,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Schleswig-Holstein-Biologie-Dokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Biologie_Sekundarstufe_2023_barrierearm.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle relevanten Schleswig-Holstein-Biologie-Passagen wurden extrahiert",
                    "passed": true,
                    "details": "9/9 Fachanforderungen-Biologie-Sek-I-Kompetenzbereiche."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher Quelle",
                    "passed": true,
                    "details": "https://fachportal.lernnetz.de/sh/faecher/biologie/fachanforderungen.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Biologie%20Sekundarstufe%20%282023%2C%20barrierearm%29.pdf&cid=16888"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Schleswig-Holstein-Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "9 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "9/9 Fachanforderungen-Biologie-Sek-I-Kompetenzbereiche."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "9 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "9/9 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 9/9; Mappings: 9/9; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2280368c-3b81-5a74-8cac-c0bc6cc4ce7a",
            "title": "DE-SL - Biologie Sekundarstufe I (Saarland, Naturwissenschaften 5/6 2012 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Biologie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_BIOLOGIE_SEKI_NW_5_6_2012.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-NW-GYM-5-6-2012-BIOLOGIE",
                "title": "Lehrplan Naturwissenschaften Gymnasium Klassenstufen 5 und 6 Saarland 2012",
                "path": "curricula/DE/Gymnasium/input/SL/NW_5und6_Gym_2012.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/NW/NW_5und6_Gym_2012.pdf?__blob=publicationFile&v=1",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 75,
            "passages": 9,
            "mappedSourceGoals": 75,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 74,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "75 Source-Ziele aus neun Biologie-relevanten Naturwissenschaften-5/6-Themenfeldern; die Spur ist bewusst auf Klassenstufen 5/6 begrenzt, weil lokal keine Saarland-Biologie-7-10-Quelle archiviert ist."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.733333333333333,
              "p90Words": 13,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Saarland-Naturwissenschaften-5/6-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/NW_5und6_Gym_2012.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Biologie-relevante Saarland-5/6-Themen sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "9/9 Themenfelder."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Saarland-Naturwissenschaften-5/6-Biologiepassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "75 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "scope-boundary-reviewed",
                    "label": "Die Klassenstufen-5/6-Grenze ist explizit dokumentiert",
                    "passed": true,
                    "details": "Die lokal archivierte Saarland-Quelle deckt Naturwissenschaften 5/6 ab; spätere Biologie-Jahrgänge bleiben bis zur Quellenarchivierung unbeansprucht."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "75 Source-Ziele; Vergleich HE/BW SEKI (111/66); Median 89; zulässiger 30%-Median-Korridor 62-115; Abweichung vom Median -15%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "75 Source-Ziele liegen vor; MAPPING-3 ist vollständig reviewed."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 75/75; Mappings: 75/75; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "bfa29aab-c913-51c3-8bec-bfd2eb227a38",
            "title": "Biologie Sekundarstufe I (Sachsen Lehrplan Gymnasium 2025 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_BIOLOGIE_SEKI_LEHRPLAN_GYMNASIUM_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-SN-BIOLOGIE-GYMNASIUM-LEHRPLAN-2025",
                "title": "Lehrplan Gymnasium Biologie Sachsen 2004/2007/2009/2011/2017/2019/2022/2025",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-biologie-sachsen-2025.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/522/OF2Vfum2JVmFeuc2FOuf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 10,
            "passages": 0,
            "mappedSourceGoals": 10,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 10,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "10 Source-Ziele; Sachsen Biologie Sek I ist als Klassenstufen-5-bis-10-Lehrplan mit verbindlichen Lernbereichen formuliert."
            },
            "sourceGoalGranularity": {
              "averageWords": 23.2,
              "p90Words": 26,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Sachsen-Biologie-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-biologie-sachsen-2025.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle sächsischen Biologie-Sek-I-Lernbereiche wurden extrahiert",
                    "passed": true,
                    "details": "10/10 Bereiche: Prozessstandards, Klassen 5/6 Organismen-Zellen-Oekologie, Klassen 7/8 Humanbiologie, Klasse 9 Pflanzen/Oekosystem, Klasse 10 Genetik/Evolution."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/522/OF2Vfum2JVmFeuc2FOuf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Sachsen-Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "10 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die Sachsen-Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "Ein Source-Ziel pro fachlich gebündeltem Klassenstufen- bzw. Lernbereichsblock."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "10 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "10/10 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 10/10; Mappings: 10/10; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4282f314-e1bd-527c-8c35-38d989ffe53e",
            "title": "Biologie Sekundarstufe I (Sachsen-Anhalt Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_BIOLOGIE_SEKI_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-ST-BIOLOGIE-GYMNASIUM-FACHLEHRPLAN-2022",
                "title": "Fachlehrplan Biologie Gymnasium Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Biologie_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Biologie_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 11,
            "passages": 0,
            "mappedSourceGoals": 11,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 11,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "11 Source-Ziele; Sachsen-Anhalt Biologie Sek I ist als Schuljahrgang-5/6-bis-10-Fachlehrplan mit Kompetenzschwerpunkten formuliert."
            },
            "sourceGoalGranularity": {
              "averageWords": 24.90909090909091,
              "p90Words": 29,
              "maxWords": 37,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Sachsen-Anhalt-Biologie-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Biologie_Gym_01082022_swd.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle sachsen-anhaltischen Biologie-Sek-I-Lernbereiche wurden extrahiert",
                    "passed": true,
                    "details": "11/11 Bereiche: Prozessstandards, Schuljahrgaenge 5/6 Lebewesen-Wirbeltiere-Pubertaet-Samenpflanzen, 7/8 Zellen-Mikroorganismen-Wirbellose-Humanbiologie-Pflanzen, 9 Mensch/Umwelt und Oekosystem Wald, 10 Genetik/Evolution."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Biologie_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Sachsen-Anhalt-Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "11 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die Sachsen-Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "Ein Source-Ziel pro fachlich gebündeltem Schuljahrgangs- bzw. Kompetenzschwerpunktblock."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "11 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "11/11 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 11/11; Mappings: 11/11; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9ba41959-3580-5872-8230-af955a70ece0",
            "title": "Biologie Sekundarstufe I (Thueringen Lehrplan Gymnasium 2024 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Biologie",
            "stage": "Sekundarstufe I",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_BIOLOGIE_SEKI_LEHRPLAN_GYMNASIUM_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-TH-BIOLOGIE-GYMNASIUM-LEHRPLAN-2024",
                "title": "Thueringer Lehrplan Biologie fuer den Erwerb der allgemeinen Hochschulreife 2024",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Biologie_2024.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/63705?dateiname=Biologie_Lehrplan_AHR_2024-11-13.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 8,
            "passages": 0,
            "mappedSourceGoals": 8,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 8,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "8 Source-Ziele; Thueringen Biologie Sek I ist als Doppeljahrgang-7/8- und 9/10-Lehrplan mit sieben Inhaltsbereichen plus allgemeinem Kompetenzmodell formuliert."
            },
            "sourceGoalGranularity": {
              "averageWords": 29.375,
              "p90Words": 35,
              "maxWords": 36,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Thueringen-Biologie-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Biologie_2024.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle thueringischen Biologie-Sek-I-Inhaltsbereiche wurden extrahiert",
                    "passed": true,
                    "details": "8/8 Bereiche: Kompetenzmodell, Klassenstufen 7/8 Wirbellose-Zellen-Mensch und Klassenstufen 9/10 Pflanzen/Pilze-Stoffwechsel, Oekologie, Genetik, Evolution."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "https://www.schulportal-thueringen.de/tip/resources/medien/63705?dateiname=Biologie_Lehrplan_AHR_2024-11-13.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Thueringen-Biologie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "8 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen die Thueringen-Dokumentstruktur plausibilisiert",
                    "passed": true,
                    "details": "Ein Source-Ziel pro fachlich gebuendeltem Kompetenzmodell- bzw. Inhaltsbereich."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "8 Source-Ziele liegen vor."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "8/8 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 8/8; Mappings: 8/8; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-biology-sek2",
          "label": "Sekundarstufe II",
          "selectedAtomicGoals": 229,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 229,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 229,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 14,
                "terminalAutonomyGoalsWithExamData": 14,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 430,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 999,
            "sourceOriginalGoals": 999,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 999,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 999,
            "sourceMappedToViewAtomicGoals": 999,
            "sourceOriginalGoals": 999,
            "sourceFullyCoveredOriginalGoals": 999,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 4,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 61,
            "maxVisibleAtomicGoals": 355,
            "maxSourceBackedAtomicGoals": 355,
            "totalAtomicGoals": 357
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 150 upper-secondary source-to-canonical mapping edge(s), including 0 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 17,
            "sourceGoals": 150,
            "sourceGoalsWithCourseLevel": 150,
            "gkLkSourceGoals": 69,
            "lkSourceGoals": 81,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 150,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 0,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 17,
            "peerBaselineChecks": 14,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 1,
            "leafGoals": 355,
            "atomic": 355,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 7/355 ordinary atomic goals intentionally use memorization support, 17/17 primary cards are kept with origin traces, all 1 memory goals are traced, and 7 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 355,
            "noMemoryNeeded": 348,
            "memoryRequired": 7,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 17,
            "keptCards": 17,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 1,
            "visibilityCheckedMemoryRequiredGoals": 7,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 1,
            "tracedMemoryGoals": 1,
            "untracedMemoryGoals": 0,
            "deckIds": 1,
            "deckFiles": 2,
            "cardRows": 34
          },
          "details": [
            "canonical-biology-full: audit report docs/qa-ci/status/memory-card-review-canonical-biology-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "2 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 2
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 1339,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 1339",
            "diagnostic finding type APV-202: 1339"
          ]
        }
      ]
    },
    {
      "landscapeId": "c436b994-8f44-5134-b9f8-0c9f5d6a5ba0",
      "title": "Chemie (Gymnasium, DE)",
      "subject": "Chemie",
      "frameworkId": "canonical-gymnasium-chemistry",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_CHEMIE.de.json",
      "maturity": "M6",
      "goals": 473,
      "atomicGoals": 405,
      "clusterGoals": 68,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 336,
        "rawAtomicGoals": 405,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 334,
        "maxSourceBackedAtomicGoals": 334,
        "maxAtomicCoveragePercent": 99.4,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 5865,
        "sourceMappedToViewAtomicGoals": 5865,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 5865,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 5865,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 5865,
        "sourceFullyCoveredOriginalGoals": 5865,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 292,
            "visibleAtomicGoals": 143,
            "visibleClusterGoals": 149,
            "viewAtomicGoals": 143,
            "sourceBackedAtomicGoals": 143,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 191,
            "sourceMappedToViewAtomicGoals": 191,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 191,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 191,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 191,
            "sourceFullyCoveredOriginalGoals": 191,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 115,
            "atomicCoveragePercent": 42.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 473,
            "visibleAtomicGoals": 334,
            "visibleClusterGoals": 139,
            "viewAtomicGoals": 334,
            "sourceBackedAtomicGoals": 334,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 324,
            "sourceMappedToViewAtomicGoals": 324,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 324,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 324,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 324,
            "sourceFullyCoveredOriginalGoals": 324,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 99.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 473,
            "visibleAtomicGoals": 334,
            "visibleClusterGoals": 139,
            "viewAtomicGoals": 334,
            "sourceBackedAtomicGoals": 334,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 384,
            "sourceMappedToViewAtomicGoals": 384,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 384,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 384,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 384,
            "sourceFullyCoveredOriginalGoals": 384,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 99.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 322,
            "visibleAtomicGoals": 143,
            "visibleClusterGoals": 179,
            "viewAtomicGoals": 143,
            "sourceBackedAtomicGoals": 143,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 271,
            "sourceMappedToViewAtomicGoals": 271,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 271,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 271,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 271,
            "sourceFullyCoveredOriginalGoals": 271,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 144,
            "atomicCoveragePercent": 42.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 322,
            "visibleAtomicGoals": 143,
            "visibleClusterGoals": 179,
            "viewAtomicGoals": 143,
            "sourceBackedAtomicGoals": 143,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 271,
            "sourceMappedToViewAtomicGoals": 271,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 271,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 271,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 271,
            "sourceFullyCoveredOriginalGoals": 271,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 144,
            "atomicCoveragePercent": 42.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 324,
            "visibleAtomicGoals": 190,
            "visibleClusterGoals": 134,
            "viewAtomicGoals": 190,
            "sourceBackedAtomicGoals": 190,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 529,
            "sourceMappedToViewAtomicGoals": 529,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 529,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 529,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 529,
            "sourceFullyCoveredOriginalGoals": 529,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 177,
            "atomicCoveragePercent": 56.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 213,
            "visibleAtomicGoals": 99,
            "visibleClusterGoals": 114,
            "viewAtomicGoals": 99,
            "sourceBackedAtomicGoals": 99,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 233,
            "sourceMappedToViewAtomicGoals": 233,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 233,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 233,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 233,
            "sourceFullyCoveredOriginalGoals": 233,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 126,
            "atomicCoveragePercent": 29.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 299,
            "visibleAtomicGoals": 143,
            "visibleClusterGoals": 156,
            "viewAtomicGoals": 143,
            "sourceBackedAtomicGoals": 143,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 321,
            "sourceMappedToViewAtomicGoals": 321,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 321,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 321,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 321,
            "sourceFullyCoveredOriginalGoals": 321,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 182,
            "atomicCoveragePercent": 42.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 321,
            "visibleAtomicGoals": 163,
            "visibleClusterGoals": 158,
            "viewAtomicGoals": 163,
            "sourceBackedAtomicGoals": 163,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 130,
            "sourceMappedToViewAtomicGoals": 130,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 130,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 130,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 130,
            "sourceFullyCoveredOriginalGoals": 130,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 211,
            "atomicCoveragePercent": 48.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 257,
            "visibleAtomicGoals": 118,
            "visibleClusterGoals": 139,
            "viewAtomicGoals": 118,
            "sourceBackedAtomicGoals": 118,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 162,
            "sourceMappedToViewAtomicGoals": 162,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 162,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 162,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 162,
            "sourceFullyCoveredOriginalGoals": 162,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 143,
            "atomicCoveragePercent": 35.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 258,
            "visibleAtomicGoals": 128,
            "visibleClusterGoals": 130,
            "viewAtomicGoals": 128,
            "sourceBackedAtomicGoals": 128,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 236,
            "sourceMappedToViewAtomicGoals": 236,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 236,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 236,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 236,
            "sourceFullyCoveredOriginalGoals": 236,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 151,
            "atomicCoveragePercent": 38.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 298,
            "visibleAtomicGoals": 140,
            "visibleClusterGoals": 158,
            "viewAtomicGoals": 140,
            "sourceBackedAtomicGoals": 140,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 390,
            "sourceMappedToViewAtomicGoals": 390,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 390,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 390,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 390,
            "sourceFullyCoveredOriginalGoals": 390,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 178,
            "atomicCoveragePercent": 41.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 285,
            "visibleAtomicGoals": 141,
            "visibleClusterGoals": 144,
            "viewAtomicGoals": 141,
            "sourceBackedAtomicGoals": 141,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 902,
            "sourceMappedToViewAtomicGoals": 902,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 902,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 902,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 902,
            "sourceFullyCoveredOriginalGoals": 902,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 162,
            "atomicCoveragePercent": 42,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 298,
            "visibleAtomicGoals": 144,
            "visibleClusterGoals": 154,
            "viewAtomicGoals": 144,
            "sourceBackedAtomicGoals": 144,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 478,
            "sourceMappedToViewAtomicGoals": 478,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 478,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 478,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 478,
            "sourceFullyCoveredOriginalGoals": 478,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 181,
            "atomicCoveragePercent": 42.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 268,
            "visibleAtomicGoals": 124,
            "visibleClusterGoals": 144,
            "viewAtomicGoals": 124,
            "sourceBackedAtomicGoals": 124,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 594,
            "sourceMappedToViewAtomicGoals": 594,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 594,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 594,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 594,
            "sourceFullyCoveredOriginalGoals": 594,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 165,
            "atomicCoveragePercent": 36.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 265,
            "visibleAtomicGoals": 134,
            "visibleClusterGoals": 131,
            "viewAtomicGoals": 134,
            "sourceBackedAtomicGoals": 134,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 449,
            "sourceMappedToViewAtomicGoals": 449,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 449,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 449,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 449,
            "sourceFullyCoveredOriginalGoals": 449,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 161,
            "atomicCoveragePercent": 39.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 32,
        "completeSources": 32,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "6a3e6947-d950-5619-8db8-2ab9a6ac55c6",
            "title": "DE-BB - Chemie Oberstufe (Brandenburg, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/source-extraction/DE_BB_CHEMIE_SEKII_RLP_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RLP-GOST-CHEMIE-2022",
                "title": "Rahmenlehrplan Berlin-Brandenburg Gymnasiale Oberstufe Teil C Chemie 2022",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Chemie.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2022_Chemie.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 203,
            "passages": 23,
            "mappedSourceGoals": 203,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 100,
            "partialMappings": 103,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.226600985221675,
              "p90Words": 11,
              "maxWords": 26,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BE/BB-Chemie-GOST-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Chemie.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Chemie-GOST-Abschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "23/23 Abschnitte; fehlend: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Abschnitt hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Abschnitte: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Inhaltszeilen der E-/Q-Themenfelder wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "203 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede zieltragende Themenfeld-Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Themenfeld-Passagen ohne Source-Ziele: -; Standards und Basiskonzepte bleiben Passage-Kontext."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "count-sanity",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "203 Source-Ziele. HE/BW Sek-II-Chemie-Referenz: HE 202, BW 126, Median 164, 30%-Korridor 115-213."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "203 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 24%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "203 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "203/203 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 203/203; Mappings: 203/203; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9b66c555-7231-40a0-a493-9ffff8bde46c",
            "title": "DE-BB - Chemie Sekundarstufe I (Brandenburg, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/source-extraction/DE_BB_CHEMIE_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-CHEMIE-SEKI-RLP-2015",
                "title": "Rahmenlehrplan Berlin-Brandenburg Teil C Chemie Jahrgangsstufen 7-10, 2015",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Chemie_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Chemie_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 68,
            "passages": 12,
            "mappedSourceGoals": 68,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 68,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "68 Source-Ziele aus 12 Themenfeldern des gemeinsamen BE/BB-Rahmenlehrplans Chemie Sek I; die Granularitaet liegt erwartbar zwischen schmaleren Sek-I-Spuren und den sehr detaillierten HE/BW/NI-Extraktionen."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.102941176470588,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-RLP-Passagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Brandenburg-Sek-I-Chemie-RLP liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Chemie_2015_11_10.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle 12 Chemie-Sek-I-Themen des RLP sind als Passagen vorhanden",
                    "passed": true,
                    "details": "12/12 Themen aus 3.1 bis 3.12."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf der amtlichen PDF-Quelle",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Chemie_2015_11_10.pdf; https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Chemie_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus RLP-Inhaltszeilen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den RLP-Inhaltszeilen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "68 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Passage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "68 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median -27%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "68/68 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 68/68; Mappings: 68/68; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4bb4be30-3d9c-5e5b-9c9f-64fb0bc80c0c",
            "title": "DE-BE - Chemie Oberstufe (Berlin, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/source-extraction/DE_BE_CHEMIE_SEKII_RLP_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RLP-GOST-CHEMIE-2022",
                "title": "Rahmenlehrplan Berlin-Brandenburg Gymnasiale Oberstufe Teil C Chemie 2022",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Chemie.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2022_Chemie.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 203,
            "passages": 23,
            "mappedSourceGoals": 203,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 100,
            "partialMappings": 103,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.226600985221675,
              "p90Words": 11,
              "maxWords": 26,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BE/BB-Chemie-GOST-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Chemie.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Chemie-GOST-Abschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "23/23 Abschnitte; fehlend: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Abschnitt hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Abschnitte: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Inhaltszeilen der E-/Q-Themenfelder wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "203 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede zieltragende Themenfeld-Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Themenfeld-Passagen ohne Source-Ziele: -; Standards und Basiskonzepte bleiben Passage-Kontext."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "count-sanity",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "203 Source-Ziele. HE/BW Sek-II-Chemie-Referenz: HE 202, BW 126, Median 164, 30%-Korridor 115-213."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "203 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 24%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "203 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "203/203 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 203/203; Mappings: 203/203; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2af9b757-11db-461a-812e-d1c1b4d6e104",
            "title": "DE-BE - Chemie Sekundarstufe I (Berlin, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/source-extraction/DE_BE_CHEMIE_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-CHEMIE-SEKI-RLP-2015",
                "title": "Rahmenlehrplan Berlin-Brandenburg Teil C Chemie Jahrgangsstufen 7-10, 2015",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Chemie_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Chemie_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 68,
            "passages": 12,
            "mappedSourceGoals": 68,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 68,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "68 Source-Ziele aus 12 Themenfeldern des gemeinsamen BE/BB-Rahmenlehrplans Chemie Sek I; die Granularitaet liegt erwartbar zwischen schmaleren Sek-I-Spuren und den sehr detaillierten HE/BW/NI-Extraktionen."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.102941176470588,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-RLP-Passagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Berlin-Sek-I-Chemie-RLP liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Chemie_2015_11_10.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle 12 Chemie-Sek-I-Themen des RLP sind als Passagen vorhanden",
                    "passed": true,
                    "details": "12/12 Themen aus 3.1 bis 3.12."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf der amtlichen PDF-Quelle",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Chemie_2015_11_10.pdf; https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Chemie_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus RLP-Inhaltszeilen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den RLP-Inhaltszeilen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "68 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Passage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "68 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median -27%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "68/68 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 68/68; Mappings: 68/68; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "880ae6cd-852f-5861-b3ae-2326e3ac7dec",
            "title": "Chemie Kursstufe (Baden-Wuerttemberg, BP2016 V2 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_CHEMIE_SEKII_BP2016_V2.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-CH-V2",
                "title": "Bildungsplan 2016 Gymnasium Chemie Baden-Wuerttemberg, ueberarbeitete Fassung vom 25. Maerz 2022",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_CH_V2.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_CH.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 126,
            "passages": 13,
            "mappedSourceGoals": 126,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 64,
            "partialMappings": 62,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 12.404761904761905,
              "p90Words": 20,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_CH_V2.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten BW-Chemie-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "13/13 Bereiche; fehlend: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Kompetenzbereich hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Bereiche: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_CH_V2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Chemie-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "126 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "126 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "126/126 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 126/126; Mappings: 126/126; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ac4d5c1c-b2c9-5724-b0bc-64b9d666ad87",
            "title": "Chemie Sekundarstufe I (Baden-Wuerttemberg, BP2016 V2 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_CHEMIE_SEKI_BP2016_V2.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-CH-V2",
                "title": "Bildungsplan 2016 Gymnasium Chemie Baden-Wuerttemberg, ueberarbeitete Fassung vom 25. Maerz 2022",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_CH_V2.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_CH.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 65,
            "passages": 6,
            "mappedSourceGoals": 65,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 27,
            "partialMappings": 38,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 14.938461538461539,
              "p90Words": 22,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_CH_V2.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten BW-Chemie-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "6/6 Bereiche; fehlend: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Kompetenzbereich hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Bereiche: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_CH_V2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Chemie-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "65 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "65 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "65/65 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 65/65; Mappings: 65/65; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "55e02c7e-ddca-4b30-a895-dc27c5f107ca",
            "title": "DE-BY - Biologisch-chemisches Praktikum Gymnasium (Bayern, LehrplanPLUS Source-Extraction)",
            "jurisdiction": "DE-BY",
            "subject": "Biologisch-chemisches Praktikum",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_BIOLOGISCH_CHEMISCHES_PRAKTIKUM_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "LEHRPLANPLUS_BCP_GYMNASIUM",
                "title": "LehrplanPLUS Gymnasium Bayern - Biologisch-chemisches Praktikum",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Biologisch-chemisches_Praktikum.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/biologisch-chemisches-praktikum",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 52,
            "passages": 14,
            "mappedSourceGoals": 52,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 52,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": false,
              "details": "BcP ist ein eigenes bayerisches Profilfach und darf nicht als vollstaendiger Ersatz fuer Chemie-Sek-II-Coverage gelesen werden."
            },
            "sourceGoalGranularity": {
              "averageWords": 18.884615384615383,
              "p90Words": 30,
              "maxWords": 31,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte LehrplanPLUS-Biologisch-chemisches Praktikum-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Biologisch-chemisches_Praktikum.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Alle zieltragenden LehrplanPLUS-Biologisch-chemisches Praktikum-Lernbereiche sind als Passagen extrahiert",
                    "passed": true,
                    "details": "Erfasst: 14/14 Passagen."
                  },
                  {
                    "id": "no-legacy-snapshot-counted",
                    "label": "Kein alter Pilot-Quellsnapshot wird als Passage-Extraction gewertet",
                    "passed": true,
                    "details": "Verwendet wird curricula/DE/Gymnasium/input/BY/gymnasium/Biologisch-chemisches_Praktikum.json als strukturierte LehrplanPLUS-Quelle; alte Mappingdateien werden nur als M3-Seed verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den LehrplanPLUS-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "52/52 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-text-present",
                    "label": "Jedes Source-Ziel enthält den LehrplanPLUS-Originaltext",
                    "passed": true,
                    "details": "Ohne Text: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "52 Source-Ziele liegen vor; MAPPING-3 kann gegen diese Source-Extraction-IDs laufen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "52/52 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 52/52; Mappings: 52/52; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ff1ca997-b6cc-5ece-8e13-5498b4bbf808",
            "title": "DE-BY - Chemie Gymnasium (Bayern, LehrplanPLUS Source-Extraction)",
            "jurisdiction": "DE-BY",
            "subject": "Chemie",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_CHEMIE_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "LEHRPLANPLUS_CHEMIE_GYMNASIUM",
                "title": "LehrplanPLUS Gymnasium Bayern - Chemie",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Chemie.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/chemie",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 332,
            "passages": 54,
            "mappedSourceGoals": 332,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 277,
            "partialMappings": 55,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Identische Kompetenzformulierungen aus parallelen Ausbildungsrichtungen und GA/EA-Profilen wurden auf 332 repraesentative Source-Ziele normalisiert; 54 Originalpassagen und alle Fundstellen bleiben ueber sourceOccurrences erhalten."
            },
            "sourceGoalGranularity": {
              "averageWords": 20.650602409638555,
              "p90Words": 32,
              "maxWords": 53,
              "longGoals": 5,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "2829fc7b-e89b-5f31-93d8-61f560d0213b",
                  "topicCode": "C9-NTG.1",
                  "words": 53,
                  "text": "beschreiben Eigenschaften von Modellen und verwenden Modelle zur Veranschaulichung und Erklärung des Aufbaus der Materie aus verschiedenen Teilchen und zur D..."
                },
                {
                  "id": "f0d7a587-9882-533d-b434-cf08bf262ff6",
                  "topicCode": "C13-GA.5",
                  "words": 49,
                  "text": "vergleichen die elektrochemische und photokatalytische Spaltung der Wasser-Moleküle, sowie die Möglichkeiten zur physikalischen und chemischen Wasserstoffspe..."
                },
                {
                  "id": "b246897e-21d3-5b31-82e8-7736de8a112c",
                  "topicCode": "C12-GA.5",
                  "words": 46,
                  "text": "unterscheiden verschiedene Systeme, in denen chemische Reaktionen ablaufen, und beschreiben, dass die bei einer chemischen Reaktion im geschlossenen System (..."
                },
                {
                  "id": "d7d3edbc-bec5-5153-aa0f-3181fe60f973",
                  "topicCode": "C13-EA.3",
                  "words": 46,
                  "text": "erklären die Wirkung von Säure-Base-Puffern und wählen geeignete Puffersysteme zur Einstellung von pH-Werten wässriger Lösungen aus, um deren Einsatzmöglichk..."
                },
                {
                  "id": "eaac7f2d-657c-515b-ab29-30a6c31f070f",
                  "topicCode": "C13-EA.4",
                  "words": 46,
                  "text": "charakterisieren die verschiedenen Formen der Sekundärstruktur als Folge der zwischenmolekularen Wechselwirkung zwischen den Peptidgruppen und unterscheiden ..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte LehrplanPLUS-Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Chemie.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Alle zieltragenden LehrplanPLUS-Chemie-Lernbereiche sind als Passagen extrahiert",
                    "passed": true,
                    "details": "Erfasst: 54/54 Passagen."
                  },
                  {
                    "id": "no-legacy-snapshot-counted",
                    "label": "Kein alter Pilot-Quellsnapshot wird als Passage-Extraction gewertet",
                    "passed": true,
                    "details": "Verwendet wird curricula/DE/Gymnasium/input/BY/gymnasium/Chemie.json als strukturierte LehrplanPLUS-Quelle; alte Mappingdateien werden nur als M3-Seed verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den LehrplanPLUS-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "332/332 Source-Ziele nach Profil-Deduplikation"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-text-present",
                    "label": "Jedes Source-Ziel enthält den LehrplanPLUS-Originaltext",
                    "passed": true,
                    "details": "Ohne Text: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "332 Source-Ziele; Vergleich HE/BW SEKI (65/122) + SEKII (126/202); Median 258; zulässiger 30%-Median-Korridor 181-334; Abweichung vom Median 29%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "332 normalisierte Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "332/332 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 332/332; Mappings: 332/332; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "98a4a027-3df3-5797-8664-c731d31942d5",
            "title": "DE-HB - Chemie Gymnasiale Oberstufe (Bremen, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HB/upper-secondary/source-extraction/DE_HB_CHEMIE_SEKII_GYO_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-GYO-CHEMIE-2022",
                "title": "Bildungsplan Chemie Gymnasiale Oberstufe Bremen 2022",
                "path": "curricula/DE/Gymnasium/input/HB/GyO_Chemie_2022.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/GyO_Chemie_2022.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 88,
            "passages": 18,
            "mappedSourceGoals": 88,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 6,
            "partialMappings": 82,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "88 Source-Ziele; Bremen GyO Chemie 2022 ist damit im erwartbaren Korridor gegenueber anderen geprueften Sek-II-Chemie-Spuren (ca. 126-333 Source-Ziele), weil die Bremer Quelle kompakte Themenbereiche statt langer Kompetenzraster fuehrt."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.909090909090909,
              "p90Words": 11,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Bremer Sek-II-Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/GyO_Chemie_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle verbindlichen Bremer GyO-Chemie-Themen sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "18/18 Themen inklusive E-Phase, Qualifikationsphase und LK-Pflichtthema 4.3."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Bremer GyO-Chemie-Kompetenzbullets wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "88 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "88 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median -46%. Kritisch gepruefte Abweichung: 88 Source-Ziele; Bremen GyO Chemie 2022 ist damit im erwartbaren Korridor gegenueber anderen geprueften Sek-II-Chemie-Spuren (ca. 126-333 Source-Ziele), weil die Bremer Quelle kompakte Themenbereiche statt langer Kompetenzraster fuehrt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "88/88 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 88/88; Mappings: 88/88; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b7e7ae4c-9e68-4231-bc73-da0da1efd9b4",
            "title": "DE-HB - Chemie Sekundarstufe I (Bremen, Bildungsplan 2006/2022 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/source-extraction/DE_HB_CHEMIE_SEKI_BILDUNGSPLAN_2006_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB_NW_GYM_2006",
                "title": "Bildungsplan Naturwissenschaften, Biologie, Chemie, Physik Gymnasium 5-10 Bremen 2006",
                "path": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_10_2006.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/06-12-06_nat_gy.pdf",
                "landingUrl": "https://www.lis.bremen.de/schulqualitaet/bildungsplaene/sekundarbereich-i-21953",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "HB_NW_GYM_2022_RESTRICTION",
                "title": "Anlage 239/2022 zur eingeschränkten Gültigkeit auf Jahrgangsstufen 5-9",
                "path": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_9_Einschraenkungen_2022.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_Naturwiss_2006_inhalt_Einschr%C3%A4nkungen.pdf",
                "landingUrl": "https://www.lis.bremen.de/schulqualitaet/bildungsplaene/sekundarbereich-i-21953",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 42,
            "passages": 4,
            "mappedSourceGoals": 42,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 42,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "42 Source-Ziele; deutlich unter HE/BW/NI Sek-I-Chemie (122/65/196), aber fachlich plausibel: Bremen fuehrt Chemie in der Sek I nach Anlage 239/2022 nur noch mit vier weitergeltenden Themen; Energie und Energietraeger sowie Natur- und Kunststoffe werden in die Gymnasiale Oberstufe verschoben."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.571428571428571,
              "p90Words": 12,
              "maxWords": 20,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Bremer Sek-I-Chemie-Quellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_10_2006.pdf; curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_9_Einschraenkungen_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle aktuell gültigen Bremer Sek-I-Chemie-Themen sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "4/4 Themen; Energie und Energieträger sowie Natur- und Kunststoffe sind laut Anlage 239/2022 nicht mehr Sek-I-Spur."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quellen: curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_10_2006.pdf; curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_9_Einschraenkungen_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Bremer Sek-I-Chemie-Kompetenzbullets wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "42 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "42 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median -55%. Kritisch gepruefte Abweichung: 42 Source-Ziele; deutlich unter HE/BW/NI Sek-I-Chemie (122/65/196), aber fachlich plausibel: Bremen fuehrt Chemie in der Sek I nach Anlage 239/2022 nur noch mit vier weitergeltenden Themen; Energie und Energietraeger sowie Natur- und Kunststoffe werden in die Gymnasiale Oberstufe verschoben."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "42 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "42/42 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 42/42; Mappings: 42/42; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2f391ba2-ba1e-40e4-a8d2-dff049516c13",
            "title": "Chemie Oberstufe (Hessen, KC 2024 Source-Extraction)",
            "jurisdiction": "DE-HE",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_CHEMIE_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "KC2024",
                "title": "Kerncurriculum Chemie gymnasiale Oberstufe Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/kerncurriculum_gymnasiale_oberstufe-chemie.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-chemie.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 202,
            "passages": 22,
            "mappedSourceGoals": 202,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 134,
            "partialMappings": 68,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 10.113861386138614,
              "p90Words": 20,
              "maxWords": 41,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/kerncurriculum_gymnasiale_oberstufe-chemie.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Chemie-Themenfelder sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "22/22 Themenfelder; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jedes Themenfeld hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Themenfelder: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HE/upper-secondary/kerncurriculum_gymnasiale_oberstufe-chemie.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Chemie-Lehrplanpassagen wurden granulare Source-Ziele erzeugt",
                    "passed": true,
                    "details": "202 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-encoding-clean",
                    "label": "Source-Ziele enthalten keine kaputten Umlaute oder PDF-Private-Use-Zeichen",
                    "passed": true,
                    "details": "Auffällige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-no-fragments",
                    "label": "Source-Ziele sind keine isolierten PDF-/Querverweis-Fragmente",
                    "passed": true,
                    "details": "Fragmentverdacht: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "202 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "202/202 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 202/202; Mappings: 202/202; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "bea90c22-b9c5-4c0c-9b10-89d875f50772",
            "title": "Chemie Sekundarstufe I (Hessen, G9 Source-Extraction)",
            "jurisdiction": "DE-HE",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-extraction/DE_HE_CHEMIE_SEKI_G9.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "G9",
                "title": "Lehrplan Chemie Gymnasium Hessen G9",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-chemie.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g9-chemie.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 122,
            "passages": 9,
            "mappedSourceGoals": 122,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 67,
            "partialMappings": 55,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 8.59016393442623,
              "p90Words": 18,
              "maxWords": 38,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-chemie.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Chemie-Themenfelder sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "9/9 Themenfelder; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jedes Themenfeld hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Themenfelder: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HE/lower-secondary/g9-chemie.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Chemie-Lehrplanpassagen wurden granulare Source-Ziele erzeugt",
                    "passed": true,
                    "details": "122 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-encoding-clean",
                    "label": "Source-Ziele enthalten keine kaputten Umlaute oder PDF-Private-Use-Zeichen",
                    "passed": true,
                    "details": "Auffällige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-no-fragments",
                    "label": "Source-Ziele sind keine isolierten PDF-/Querverweis-Fragmente",
                    "passed": true,
                    "details": "Fragmentverdacht: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "122 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "122/122 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 122/122; Mappings: 122/122; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "22c22040-850c-5242-8ebe-ce7d9a505696",
            "title": "DE-HH - Chemie Sekundarstufe I (Hamburg, Bildungsplan Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_CHEMIE_SEKI_BILDUNGSPLAN.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-CHEMIE-GYM-SEKI",
                "title": "Hamburg Bildungsplan Gymnasium Sekundarstufe I Chemie",
                "path": "curricula/DE/Gymnasium/input/HH/chemie-gym-seki-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123422/efa77dbec7a94ae3682ad7e62346147d/chemie-gym-seki-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 65,
            "passages": 7,
            "mappedSourceGoals": 65,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 40,
            "partialMappings": 25,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "65 Source-Ziele; Hamburg Sek I ist als kompakter Bildungsplan formuliert und liegt damit nah an den geprüften kompakten Chemie-Sek-I-Inventaren BW (65) und NRW (79)."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.353846153846154,
              "p90Words": 13,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburger Chemie-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/chemie-gym-seki-data.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle vorgesehenen Hamburger Chemie-Passagegruppen wurden extrahiert",
                    "passed": true,
                    "details": "7/7 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HH/chemie-gym-seki-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Hamburger Chemie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "65 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "65 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median -30%. Kritisch gepruefte Abweichung: 65 Source-Ziele; Hamburg Sek I ist als kompakter Bildungsplan formuliert und liegt damit nah an den geprüften kompakten Chemie-Sek-I-Inventaren BW (65) und NRW (79)."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "65 Source-Ziele liegen vor; MAPPING-3 muss nun fachlich reviewed werden."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "65/65 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 65/65; Mappings: 65/65; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7516a41d-2eb2-5ce4-8f38-31570f0ffa81",
            "title": "DE-HH - Chemie Studienstufe (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/source-extraction/DE_HH_CHEMIE_SEKII_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-CHEMIE-GYO-2022",
                "title": "Hamburg Bildungsplan Studienstufe Chemie 2022",
                "path": "curricula/DE/Gymnasium/input/HH/chemie-gyo-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123042/e19828c45238e198fc9cfc2a73777685/chemie-gyo-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 97,
            "passages": 12,
            "mappedSourceGoals": 97,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 18,
            "partialMappings": 79,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "97 Source-Ziele; Hamburg Sek II liegt im Korridor der geprüften direkten Chemie-Sek-II-Inventare BW (126), NW (154), SH (165) und HE (202)."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.195876288659794,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburger Chemie-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/chemie-gyo-2022-data.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle vorgesehenen Hamburger Chemie-Passagegruppen wurden extrahiert",
                    "passed": true,
                    "details": "12/12 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HH/chemie-gyo-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den Hamburger Chemie-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "97 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "97 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median -41%. Kritisch gepruefte Abweichung: 97 Source-Ziele; Hamburg Sek II liegt im Korridor der geprüften direkten Chemie-Sek-II-Inventare BW (126), NW (154), SH (165) und HE (202)."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "97 Source-Ziele liegen vor; MAPPING-3 muss nun fachlich reviewed werden."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "97/97 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 97/97; Mappings: 97/97; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4f98d47b-8536-5021-8bf1-09761eff8050",
            "title": "DE-MV - Chemie Qualifikationsphase (Mecklenburg-Vorpommern, Rahmenplan 2022 Erprobungsfassung Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/source-extraction/DE_MV_CHEMIE_SEKII_RAHMENPLAN_ERPROBUNGSFASSUNG_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-CH-SEKII-2022-ERPROBUNG",
                "title": "Rahmenplan Chemie Qualifikationsphase gymnasiale Oberstufe Mecklenburg-Vorpommern 2022 Erprobungsfassung",
                "path": "curricula/DE/Gymnasium/input/MV/Chemie_Gymnasium_11_12_Erprobungsfassung.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_CHE_SEK2_erprobungsfassung.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 122,
            "passages": 12,
            "mappedSourceGoals": 122,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 18,
            "partialMappings": 104,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "122 Source-Ziele; BW/NW/SH/HE/BB/BE/NI/ST Sek-II-Chemie = 126/154/165/202/203/203/333/324 Source-Ziele; MV wird aus den verbindlichen Qualifikationsphasen-Tabellen GK/LK extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.80327868852459,
              "p90Words": 12,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Mecklenburg-Vorpommern-Chemie-Rahmenplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Chemie_Gymnasium_11_12_Erprobungsfassung.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Verbindliche Mecklenburg-Vorpommern-Chemie-Themen sind als Passagegruppen vorhanden",
                    "passed": true,
                    "details": "12/12 Passagegruppen; ohne Source-Ziele: -."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/MV/Chemie_Gymnasium_11_12_Erprobungsfassung.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Mecklenburg-Vorpommern-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "122 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "122 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median -26%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "122 Source-Ziele liegen vor; MAPPING-3 muss fachlich reviewed werden."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "122/122 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 122/122; Mappings: 122/122; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e19d84c3-efa8-5b74-8c78-b284fc65b26c",
            "title": "DE-MV - Chemie Sekundarstufe I (Mecklenburg-Vorpommern, Rahmenplan 2021 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_CHEMIE_SEKI_RAHMENPLAN_2021.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-CH-SEKI-2021",
                "title": "Rahmenplan Chemie Sekundarstufe I Gymnasium/Gesamtschule Mecklenburg-Vorpommern 2021",
                "path": "curricula/DE/Gymnasium/input/MV/Chemie_Sekundarstufe_I_2021.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/Anlage_9_RP_CHE_AHR-7-10_final1.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 114,
            "passages": 11,
            "mappedSourceGoals": 114,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 34,
            "partialMappings": 80,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "114 Source-Ziele; HE/BW/HB/NI/NW/SH/ST Sek-I-Chemie = 122/65/42/196/79/156/270 Source-Ziele; MV wird aus den verbindlichen Inhalte-Tabellen Klassen 8-10 extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.12280701754386,
              "p90Words": 13,
              "maxWords": 18,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Mecklenburg-Vorpommern-Chemie-Rahmenplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Chemie_Sekundarstufe_I_2021.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Verbindliche Mecklenburg-Vorpommern-Chemie-Themen sind als Passagegruppen vorhanden",
                    "passed": true,
                    "details": "11/11 Passagegruppen; ohne Source-Ziele: -."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/MV/Chemie_Sekundarstufe_I_2021.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Mecklenburg-Vorpommern-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "114 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "114 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median 22%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "114 Source-Ziele liegen vor; MAPPING-3 muss fachlich reviewed werden."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "114/114 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 114/114; Mappings: 114/114; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "865026c1-fec9-5e1d-91ae-d24a47e8c219",
            "title": "DE-NI - Chemie Oberstufe (Niedersachsen, KC 2022 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/source-extraction/DE_NI_CHEMIE_SEKII_KC2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-CHEMIE-SEKII-2022",
                "title": "Niedersachsen Kerncurriculum Chemie gymnasiale Oberstufe 2022",
                "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/KC-CH_SII_Druck.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=362",
                "landingUrl": "https://cuvo.nibis.de/cuvo.php?k0_0=Fach&k0_1=Dokumentenart&p=search&v0_0=Chemie&v0_1=Kerncurriculum",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 333,
            "passages": 21,
            "mappedSourceGoals": 333,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 82,
            "partialMappings": 251,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI 2022 wird als 333 Einzelkompetenzen in den vier Kompetenzbereichen formuliert; die Abweichung ist gegen das PDF geprüft und nicht durch Anhangs-/Beispielmaterial verursacht."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.24924924924925,
              "p90Words": 12,
              "maxWords": 20,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NI-Chemie-KC-2022-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/KC-CH_SII_Druck.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle Kernkompetenztabellen aus Kapitel 3.2.1/3.2.2 sind als Passagen vorhanden",
                    "passed": true,
                    "details": "21/21 Tabellen; fehlend: -"
                  },
                  {
                    "id": "appendix-excluded",
                    "label": "Anhang und Unterrichtsgang-Beispiele wurden nicht als Source-Ziele extrahiert",
                    "passed": true,
                    "details": "Extraktionsfenster endet vor Kapitel 4; Anhang A3-A8 bleibt bewusst ausgeschlossen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den tabellarischen Kompetenz-Bullets erzeugt",
                    "passed": true,
                    "details": "333 Source-Ziele aus Sach-, Erkenntnis-, Kommunikations- und Bewertungskompetenz."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Kompetenztafel-Passage hat Source-Ziele",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline-local-audit",
                    "label": "Auffällige Source-Ziel-Anzahl wurde fachlich plausibilisiert",
                    "passed": true,
                    "details": "333 liegt oberhalb des HE/BW-Median-Korridors, ist hier aber erwartbar: NI formuliert verbindliche Einzelkompetenzen tabellarisch über vier Kompetenzbereiche. Extrahiert wurden ausschließlich Kapitel 3.2.1/3.2.2, keine Anhänge."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "333 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 103%. Kritisch gepruefte Abweichung: NI 2022 wird als 333 Einzelkompetenzen in den vier Kompetenzbereichen formuliert; die Abweichung ist gegen das PDF geprüft und nicht durch Anhangs-/Beispielmaterial verursacht."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "333 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "333/333 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 333/333; Mappings: 333/333; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "d1d18318-e66f-44dc-8e82-52f8aa0b0ac1",
            "title": "DE-NI - Chemie Sekundarstufe I (Niedersachsen, KC 2015 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/source-extraction/DE_NI_CHEMIE_SEKI_KC2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-NATURWISSENSCHAFTEN-SEKI-2015-CHEMIE",
                "title": "Niedersachsen Kerncurriculum Naturwissenschaften Gymnasium Sekundarbereich I 2015, Chemie",
                "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/kc_naturwissenschaften_gymnasium_sek_i_2015.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=18",
                "landingUrl": "https://cuvo.nibis.de/cuvo.php?k0_0=Fach&k0_1=Dokumentenart&p=search&v0_0=Naturwissenschaften&v0_1=Kerncurriculum",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 196,
            "passages": 14,
            "mappedSourceGoals": 196,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 23,
            "partialMappings": 173,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek I Chemie wird als 196 Einzelkompetenzen ueber vier Kompetenzbereiche und 14 Basiskonzept-Tabellen formuliert; die Abweichung gegenueber HE/BW wurde gegen die amtliche PDF geprueft."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.056122448979592,
              "p90Words": 13,
              "maxWords": 25,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NI-Naturwissenschaften-Sek-I-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/kc_naturwissenschaften_gymnasium_sek_i_2015.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle Chemie-Basiskonzept-Kompetenztabellen sind als Passagen vorhanden",
                    "passed": true,
                    "details": "14/14 Tabellen; fehlend: -"
                  },
                  {
                    "id": "appendix-excluded",
                    "label": "Anhang und Umsetzungsvorschläge wurden nicht als Source-Ziele extrahiert",
                    "passed": true,
                    "details": "Extraktionsfenster endet vor dem Anhang zum Kerncurriculum Chemie auf S. 65."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen Chemie-Kompetenz-Bullets erzeugt",
                    "passed": true,
                    "details": "196/196 Source-Ziele aus Fachwissen, Erkenntnisgewinnung, Kommunikation und Bewertung."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Chemie-Kompetenztabelle hat Source-Ziele",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Kompetenzüberschrift, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline-local-audit",
                    "label": "Auffällige Source-Ziel-Anzahl wurde fachlich plausibilisiert",
                    "passed": true,
                    "details": "196 liegt deutlich über HE/BW-Sek-I-Vergleichswerten. Das ist hier plausibel, weil NI die verbindlichen Kompetenzen einzeln über vier Kompetenzbereiche und 14 Basiskonzept-Tabellen ausweist; extrahiert wurden nur S. 51-64, nicht der Anhang."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "196 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median 110%. Kritisch gepruefte Abweichung: NI Sek I Chemie wird als 196 Einzelkompetenzen ueber vier Kompetenzbereiche und 14 Basiskonzept-Tabellen formuliert; die Abweichung gegenueber HE/BW wurde gegen die amtliche PDF geprueft."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "196 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "196/196 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 196/196; Mappings: 196/196; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9d80e7cf-2087-5eda-841a-e02e707b5ba9",
            "title": "DE-NW - Chemie Oberstufe (Nordrhein-Westfalen, KLP 2022 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/source-extraction/DE_NW_CHEMIE_SEKII_KLP2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-KLP-CHEMIE-SEKII-2022",
                "title": "Nordrhein-Westfalen Kernlehrplan Chemie Gymnasiale Oberstufe 2022",
                "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_ch_2022_06_07.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/gost_klp_ch_2022_06_07.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 154,
            "passages": 30,
            "mappedSourceGoals": 154,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 152,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "154 Source-Ziele; NRW liegt im Korridor der direkt aus KLP/Einheitstabellen extrahierten Chemie-Sek-II-Inventare (HE 202, BB/BE 203, BW 126)."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.272727272727273,
              "p90Words": 23,
              "maxWords": 33,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NRW-Chemie-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_ch_2022_06_07.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle NRW-Chemie-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "30/30 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_ch_2022_06_07.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen NRW-Chemie-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "154 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "154 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median -6%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "154 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "154/154 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 154/154; Mappings: 154/154; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b6869844-53a0-5ba9-8217-614bdba432fd",
            "title": "DE-NW - Chemie Sekundarstufe I (Nordrhein-Westfalen, KLP 2019 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/source-extraction/DE_NW_CHEMIE_SEKI_KLP2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-KLP-CHEMIE-SEKI-2019",
                "title": "Nordrhein-Westfalen Kernlehrplan Chemie Sekundarstufe I Gymnasium 2019",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_ch_klp_3415_2019_06_23.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_ch_klp_3415_2019_06_23.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 79,
            "passages": 30,
            "mappedSourceGoals": 79,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 78,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "79 Source-Ziele; NRW liegt als direktes KLP-Bullet-Inventar unter Niedersachsen (196) und Hessen (122), aber die 10 amtlichen Inhaltsfelder sind vollständig extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.531645569620252,
              "p90Words": 19,
              "maxWords": 25,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NRW-Chemie-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_ch_klp_3415_2019_06_23.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle NRW-Chemie-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "30/30 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NW/lower-secondary/g9_ch_klp_3415_2019_06_23.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen NRW-Chemie-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "79 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "79 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median -16%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "79 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "79/79 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 79/79; Mappings: 79/79; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7995e414-2401-5987-89e8-f4dfd816bd68",
            "title": "DE-RP - Chemie Mainzer Studienstufe (Rheinland-Pfalz, Lehrplan 2022 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/source-extraction/DE_RP_CHEMIE_SEKII_MSS_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-CH-SEKII-2022",
                "title": "Lehrplan Chemie Grund- und Leistungsfach in der gymnasialen Oberstufe Rheinland-Pfalz 2022",
                "path": "curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_II_MSS_2022.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?tx_rlpbase_download%5Bitem%5D=67901&type=432522",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 325,
            "passages": 63,
            "mappedSourceGoals": 325,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 97,
            "partialMappings": 228,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "325 Source-Ziele; HE/BW/BB/BE/NI/NW/SH/MV/ST Sek-II-Chemie = 202/126/203/203/333/154/165/122/324 Source-Ziele; RP wird aus den Fachinhalten der MSS-Bausteine ab Kapitel 4.3 extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.966153846153846,
              "p90Words": 19,
              "maxWords": 104,
              "longGoals": 4,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "rp-chem-sekii-rp-ch-sekii-2022-baustein-14-2-001-2d1692b6",
                  "topicCode": "BAUSTEIN-14-2",
                  "words": 104,
                  "text": "Anwendungen von Nanomaterialien (mindestens zwei), z. B.:; Kunststoffe, z. B. Verstärkung durch Kohlenstoffnanoröhrchen, kratzfeste Kunststofflacke …; Lebens..."
                },
                {
                  "id": "rp-chem-sekii-rp-ch-sekii-2022-baustein-4-6-002-cbb5810c",
                  "topicCode": "BAUSTEIN-4-6",
                  "words": 80,
                  "text": "Schwerpunktsetzung (Solarzellen oder Leuchtmittel) Schwerpunkt 1: Solarzellen, Energietransfer: Licht  Elektrizität; fotovoltaischer Effekt, Halbleiterfotoe..."
                },
                {
                  "id": "rp-chem-sekii-rp-ch-sekii-2022-baustein-17-2-001-40b39e92",
                  "topicCode": "BAUSTEIN-17-2",
                  "words": 48,
                  "text": "Alternative 1: Gewässeranalytik, z. B. am Fließgewässer durch Bestimmung der chemischen Gewässergüte (chemischer Index); Temperatur; pH-Wert; elektrische Lei..."
                },
                {
                  "id": "rp-chem-sekii-rp-ch-sekii-2022-baustein-9-2-004-c64f391b",
                  "topicCode": "BAUSTEIN-9-2",
                  "words": 46,
                  "text": "Vergleich von Leistungen und Grenzen der Valenzbindungstheorie und mindestens einer weiteren Theorie (z. B. Kristallfeldtheorie, Ligandenfeldtheorie, Molekül..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Rheinland-Pfalz-Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_II_MSS_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete Rheinland-Pfalz-Chemie-Passagegruppen sind vorhanden",
                    "passed": true,
                    "details": "63 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_II_MSS_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Rheinland-Pfalz-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "325 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "325 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 98%. Kritisch gepruefte Abweichung: 325 Source-Ziele; HE/BW/BB/BE/NI/NW/SH/MV/ST Sek-II-Chemie = 202/126/203/203/333/154/165/122/324 Source-Ziele; RP wird aus den Fachinhalten der MSS-Bausteine ab Kapitel 4.3 extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "325 Source-Ziele liegen vor; MAPPING-3 muss fachlich reviewed werden."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "325/325 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 325/325; Mappings: 325/325; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4eb03df6-9416-5dc8-8957-a9cd3d5ce6a9",
            "title": "DE-RP - Chemie Sekundarstufe I (Rheinland-Pfalz, Lehrplan BCP 2014 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/source-extraction/DE_RP_CHEMIE_SEKI_RAHMENLEHRPLAN_2014.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-CH-SEKI-2014",
                "title": "Lehrplan Naturwissenschaftliche Fächer Biologie, Chemie, Physik Klassenstufen 7-10 Rheinland-Pfalz 2014",
                "path": "curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_I_Biologie_Physik_Chemie_2014.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?tx_rlpbase_download%5Bitem%5D=56515&type=432522",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 65,
            "passages": 12,
            "mappedSourceGoals": 65,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 23,
            "partialMappings": 42,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "65 Source-Ziele; HE/BW/HB/NI/NW/SH/MV/ST Sek-I-Chemie = 122/65/42/196/79/156/114/270 Source-Ziele; RP wird aus den zwölf Chemie-Themenfeldern und ihren Kompetenzbullets extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 31.307692307692307,
              "p90Words": 101,
              "maxWords": 163,
              "longGoals": 12,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "rp-chem-seki-rp-ch-seki-2014-tf02-von-der-saline-zum-kochsalz-007-0e7d0698",
                  "topicCode": "TF02-VON-DER-SALINE-ZUM-KOCHSALZ",
                  "words": 163,
                  "text": "zentrale Basiskonzepte und Fachbegriffe des Themenfeldes fachsprachlich verwenden: Fachbegriffe: Auf der Stoffebene: Salz, Salze sind durch ihre Eigenschafte..."
                },
                {
                  "id": "rp-chem-seki-rp-ch-seki-2014-tf03-heizen-und-antreiben-007-fd4615ed",
                  "topicCode": "TF03-HEIZEN-UND-ANTREIBEN",
                  "words": 140,
                  "text": "zentrale Basiskonzepte und Fachbegriffe des Themenfeldes fachsprachlich verwenden: Fachbegriffe: Auf der Stoffebene: Verbrennungen werden mit Reaktionsgleich..."
                },
                {
                  "id": "rp-chem-seki-rp-ch-seki-2014-tf01-chemikers-vorstellungen-von-den-stoffen-005-cca48208",
                  "topicCode": "TF01-CHEMIKERS-VORSTELLUNGEN-VON-DEN-STOFFEN",
                  "words": 128,
                  "text": "zentrale Basiskonzepte und Fachbegriffe des Themenfeldes fachsprachlich verwenden: Fachbegriffe: Auf der Stoffebene: Stoff Stoffe werden in der Chemie nach k..."
                },
                {
                  "id": "rp-chem-seki-rp-ch-seki-2014-tf06-sauren-und-laugen-006-a9a4d378",
                  "topicCode": "TF06-SAUREN-UND-LAUGEN",
                  "words": 126,
                  "text": "zentrale Basiskonzepte und Fachbegriffe des Themenfeldes fachsprachlich verwenden: Fachbegriffe: Auf der Stoffebene: Die Verwendung von sauren und alkalische..."
                },
                {
                  "id": "rp-chem-seki-rp-ch-seki-2014-tf12-mobile-energietrager-005-7543bdcd",
                  "topicCode": "TF12-MOBILE-ENERGIETRAGER",
                  "words": 125,
                  "text": "zentrale Basiskonzepte und Fachbegriffe des Themenfeldes fachsprachlich verwenden: Fachbegriffe: Auf der Stoffebene: Bei der Auswahl geeigneter Stoffe zur el..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Rheinland-Pfalz-Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_I_Biologie_Physik_Chemie_2014.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete Rheinland-Pfalz-Chemie-Passagegruppen sind vorhanden",
                    "passed": true,
                    "details": "12 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/RP/Chemie_Sekundarstufe_I_Biologie_Physik_Chemie_2014.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Rheinland-Pfalz-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "65 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "65 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median -30%. Kritisch gepruefte Abweichung: 65 Source-Ziele; HE/BW/HB/NI/NW/SH/MV/ST Sek-I-Chemie = 122/65/42/196/79/156/114/270 Source-Ziele; RP wird aus den zwölf Chemie-Themenfeldern und ihren Kompetenzbullets extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "65 Source-Ziele liegen vor; MAPPING-3 muss fachlich reviewed werden."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "65/65 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 65/65; Mappings: 65/65; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "5dd72a26-67b0-5b2c-8a81-8ad179a6634e",
            "title": "DE-SH - Chemie Oberstufe (Schleswig-Holstein, Fachanforderungen 2022 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/upper-secondary/source-extraction/DE_SH_CHEMIE_SEKII_FACHANFORDERUNGEN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-FA-CHEMIE-SEK-2022",
                "title": "Schleswig-Holstein Fachanforderungen Chemie Sekundarstufe I/II 2022",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Chemie_Sekundarstufe_2022_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Chemie%20Sekundarstufe%20%282022%2C%20barrierearm%29.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 165,
            "passages": 7,
            "mappedSourceGoals": 165,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 46,
            "partialMappings": 119,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "165 Source-Ziele; SH Sek II wird aus den verbindlichen Sachgebiets- und Themenbereichsinhalten extrahiert und liegt im Korridor der geprüften direkten Chemie-Sek-II-Inventare (BW 126, NW 154, HE 202, BB/BE 203)."
            },
            "sourceGoalGranularity": {
              "averageWords": 5.2727272727272725,
              "p90Words": 10,
              "maxWords": 30,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Chemie_Sekundarstufe_2022_barrierearm.pdf"
                  },
                  {
                    "id": "expected-section-coverage",
                    "label": "Alle erwarteten SH-Chemie-Abschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "Fehlende Abschnitte: -"
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/SH/Fachanforderungen_Chemie_Sekundarstufe_2022_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen SH-Chemie-Bullets erzeugt",
                    "passed": true,
                    "details": "165 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "165 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 1%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "165 Source-Ziele liegen vor; MAPPING-3 muss nun fachlich reviewed werden."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "165/165 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 165/165; Mappings: 165/165; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "869de671-5a4f-57bc-83bf-40f77c746a69",
            "title": "DE-SH - Chemie Sekundarstufe I (Schleswig-Holstein, Fachanforderungen 2022 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SH/lower-secondary/source-extraction/DE_SH_CHEMIE_SEKI_FACHANFORDERUNGEN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-FA-CHEMIE-SEK-2022",
                "title": "Schleswig-Holstein Fachanforderungen Chemie Sekundarstufe I/II 2022",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Chemie_Sekundarstufe_2022_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Chemie%20Sekundarstufe%20%282022%2C%20barrierearm%29.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 156,
            "passages": 8,
            "mappedSourceGoals": 156,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 27,
            "partialMappings": 129,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "156 Source-Ziele; SH Sek I kombiniert prozessbezogene Kompetenzen, inhaltsbezogene Kompetenzbullets und die verbindliche Inhaltsübersicht. Der Wert liegt im geprüften Chemie-Sek-I-Korridor zwischen kompakten Inventaren (BW 65, NRW 79, HE 122) und tabellarisch stark ausdifferenzierten Inventaren (NI 196)."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.769230769230769,
              "p90Words": 14,
              "maxWords": 24,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-Chemie-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Chemie_Sekundarstufe_2022_barrierearm.pdf"
                  },
                  {
                    "id": "expected-section-coverage",
                    "label": "Alle erwarteten SH-Chemie-Abschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "Fehlende Abschnitte: -"
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/SH/Fachanforderungen_Chemie_Sekundarstufe_2022_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen SH-Chemie-Bullets erzeugt",
                    "passed": true,
                    "details": "156 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "156 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median 67%. Kritisch gepruefte Abweichung: 156 Source-Ziele; SH Sek I kombiniert prozessbezogene Kompetenzen, inhaltsbezogene Kompetenzbullets und die verbindliche Inhaltsübersicht. Der Wert liegt im geprüften Chemie-Sek-I-Korridor zwischen kompakten Inventaren (BW 65, NRW 79, HE 122) und tabellarisch stark ausdifferenzierten Inventaren (NI 196)."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "156 Source-Ziele liegen vor; MAPPING-3 muss nun fachlich reviewed werden."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "156/156 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 156/156; Mappings: 156/156; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7aae5eef-c2ae-5365-8091-955d96b89ad8",
            "title": "DE-SL - Chemie Gymnasiale Oberstufe (Saarland, GOS 2023/2025 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_CHEMIE_SEKII_GOS_2023_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-CH-SEKII-EP-NW-2024",
                "title": "Lehrplan Chemie Einführungsphase der gymnasialen Oberstufe Saarland 2024, naturwissenschaftlicher Zweig",
                "path": "curricula/DE/Gymnasium/input/SL/Chemie_GOS_Einfuehrungsphase_naturwissenschaftlicher_Zweig_2024.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-CH-SEKII-EP-SPR-2024",
                "title": "Lehrplan Chemie Einführungsphase der gymnasialen Oberstufe Saarland 2024, sprachlicher Zweig",
                "path": "curricula/DE/Gymnasium/input/SL/Chemie_GOS_Einfuehrungsphase_sprachlicher_Zweig_2024.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-CH-SEKII-GK-2023-2025",
                "title": "Lehrplan Chemie Grundkurs der gymnasialen Oberstufe Saarland 2023, ab Abitur 2027, redaktionell 2025",
                "path": "curricula/DE/Gymnasium/input/SL/Chemie_GOS_Grundkurs_2023_ab_2027_red_2025.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-CH-SEKII-LK-2023-2025",
                "title": "Lehrplan Chemie Leistungskurs der gymnasialen Oberstufe Saarland 2023, ab Abitur 2027, redaktionell 2025",
                "path": "curricula/DE/Gymnasium/input/SL/Chemie_GOS_Leistungskurs_2023_ab_2027_red_2025.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 712,
            "passages": 160,
            "mappedSourceGoals": 712,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 137,
            "partialMappings": 575,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "712 Source-Ziele; HE/BW/BB/BE/HH/MV/NI/NW/RP/SH/ST Sek-II-Chemie = 202/126/203/203/75/122/333/154/325/165/324 Source-Ziele. Saarland Sek-II wird aus EP-NW, EP-sprachlich, GK und LK extrahiert; Dopplungen zwischen Kursdokumenten bleiben als Quellenbeleg erhalten."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.507022471910112,
              "p90Words": 18,
              "maxWords": 38,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Saarland-Chemie-Quellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/Chemie_GOS_Einfuehrungsphase_naturwissenschaftlicher_Zweig_2024.pdf, curricula/DE/Gymnasium/input/SL/Chemie_GOS_Einfuehrungsphase_sprachlicher_Zweig_2024.pdf, curricula/DE/Gymnasium/input/SL/Chemie_GOS_Grundkurs_2023_ab_2027_red_2025.pdf, curricula/DE/Gymnasium/input/SL/Chemie_GOS_Leistungskurs_2023_ab_2027_red_2025.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Saarland-Chemie-Passagegruppen aus den Kompetenzspalten sind vorhanden",
                    "passed": true,
                    "details": "160 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen",
                    "passed": true,
                    "details": "Quellen: curricula/DE/Gymnasium/input/SL/Chemie_GOS_Einfuehrungsphase_naturwissenschaftlicher_Zweig_2024.pdf, curricula/DE/Gymnasium/input/SL/Chemie_GOS_Einfuehrungsphase_sprachlicher_Zweig_2024.pdf, curricula/DE/Gymnasium/input/SL/Chemie_GOS_Grundkurs_2023_ab_2027_red_2025.pdf, curricula/DE/Gymnasium/input/SL/Chemie_GOS_Leistungskurs_2023_ab_2027_red_2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Saarland-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "712 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "712 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 334%. Kritisch gepruefte Abweichung: 712 Source-Ziele; HE/BW/BB/BE/HH/MV/NI/NW/RP/SH/ST Sek-II-Chemie = 202/126/203/203/75/122/333/154/325/165/324 Source-Ziele. Saarland Sek-II wird aus EP-NW, EP-sprachlich, GK und LK extrahiert; Dopplungen zwischen Kursdokumenten bleiben als Quellenbeleg erhalten."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "712 Source-Ziele liegen vor; MAPPING-3 ist fachlich reviewed."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "712/712 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 712/712; Mappings: 712/712; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c8d559dc-e8de-52a7-851a-6e411907daf6",
            "title": "DE-SL - Chemie Sekundarstufe I (Saarland, Gymnasium G9 2024/2025 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_CHEMIE_SEKI_GYM9_2024_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-CH-SEKI-8-2024",
                "title": "Lehrplan Chemie Klassenstufe 8 im neunjährigen Gymnasium Saarland 2024, redaktionell 2025",
                "path": "curricula/DE/Gymnasium/input/SL/Chemie_Gymnasium_G9_Klasse_8_2024_red_2025.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-CH-SEKI-9-2025",
                "title": "Lehrplan Chemie Klassenstufe 9 im neunjährigen Gymnasium Saarland 2025",
                "path": "curricula/DE/Gymnasium/input/SL/Chemie_Gymnasium_G9_Klasse_9_2025.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 190,
            "passages": 28,
            "mappedSourceGoals": 190,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 62,
            "partialMappings": 128,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "190 Source-Ziele; HE/BW/HB/HH/MV/NI/NW/RP/SH/ST Sek-I-Chemie = 122/65/42/76/114/196/79/65/156/270 Source-Ziele. Saarland Sek-I wird aus den Kompetenzbullets der Klassenstufen 8 und 9 extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.410526315789474,
              "p90Words": 15,
              "maxWords": 62,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "sl-chem-seki-sl-ch-seki-8-2024-p027-002-c75342ca",
                  "topicCode": "SL-CH-SEKI-8-2024-P027",
                  "words": 62,
                  "text": "leiten aus der Stellung eines Hauptgruppenelements im PSE die Anzahl der Elektronenschalen, die Elektronenanzahl auf den verschiedenen Energiestufen, die Anz..."
                },
                {
                  "id": "sl-chem-seki-sl-ch-seki-9-2025-p023-009-08251147",
                  "topicCode": "SL-CH-SEKI-9-2025-P023",
                  "words": 48,
                  "text": "führen Experimente zur Salzbildung aus unedlen Metallen mit Halogenwasserstoffsäuren durch und werten diese aus. Hinweise zum Sprachsensiblen Fachunterricht ..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Saarland-Chemie-Quellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/Chemie_Gymnasium_G9_Klasse_8_2024_red_2025.pdf, curricula/DE/Gymnasium/input/SL/Chemie_Gymnasium_G9_Klasse_9_2025.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Saarland-Chemie-Passagegruppen aus den Kompetenzspalten sind vorhanden",
                    "passed": true,
                    "details": "28 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen",
                    "passed": true,
                    "details": "Quellen: curricula/DE/Gymnasium/input/SL/Chemie_Gymnasium_G9_Klasse_8_2024_red_2025.pdf, curricula/DE/Gymnasium/input/SL/Chemie_Gymnasium_G9_Klasse_9_2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Saarland-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "190 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "190 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median 103%. Kritisch gepruefte Abweichung: 190 Source-Ziele; HE/BW/HB/HH/MV/NI/NW/RP/SH/ST Sek-I-Chemie = 122/65/42/76/114/196/79/65/156/270 Source-Ziele. Saarland Sek-I wird aus den Kompetenzbullets der Klassenstufen 8 und 9 extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "190 Source-Ziele liegen vor; MAPPING-3 ist fachlich reviewed."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "190/190 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 190/190; Mappings: 190/190; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4629b4f3-95eb-5166-8b6b-056632d0f270",
            "title": "DE-SN - Chemie Jahrgangsstufen 11/12 (Sachsen, Lehrplan Gymnasium 2025 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SN/upper-secondary/source-extraction/DE_SN_CHEMIE_SEKII_LEHRPLAN_GYMNASIUM_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-CH-2025",
                "title": "Lehrplan Gymnasium Chemie Sachsen 2004/2007/2009/2011/2019/2022/2025",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-chemie-sachsen-2025.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/521/lnuYavMOfLLQRd2MlehG",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 302,
            "passages": 33,
            "mappedSourceGoals": 302,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 38,
            "partialMappings": 264,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "302 Source-Ziele; HE/BW/BB/BE/HH/MV/NI/NW/RP/SH/ST/SL Sek-II-Chemie = 202/126/203/203/75/122/333/154/325/165/324/712 Source-Ziele. Sachsen Sek II trennt GK und LK im selben amtlichen Lehrplan."
            },
            "sourceGoalGranularity": {
              "averageWords": 25.486754966887418,
              "p90Words": 40,
              "maxWords": 54,
              "longGoals": 14,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "sn-chem-sekii-sn-ch-jahrgangsstufe-11-grundkurs-lb1-002-06-18ea6fc3",
                  "topicCode": "SN-CH-jahrgangsstufe-11-grundkurs-LB1",
                  "words": 54,
                  "text": "Anwenden des Wissens über den Zusammenhang zwischen Struktur und Eigenschaften von Stoffen zur Ordnung von ausgewählten anorganischen und organischen Stoffen..."
                },
                {
                  "id": "sn-chem-sekii-sn-ch-jahrgangsstufe-11-grundkurs-lb1-001-01-6f63cf80",
                  "topicCode": "SN-CH-jahrgangsstufe-11-grundkurs-LB1",
                  "words": 53,
                  "text": "Kennen des Zusammenhangs zwischen Atombau und Stellung der Haupt- und Nebengruppenelemente im Periodensystem Basiskonzept: Konzept vom Aufbau und von den Eig..."
                },
                {
                  "id": "sn-chem-sekii-sn-ch-jahrgangsstufe-11-leistungskurs-lb1-038-06-ef1f6c51",
                  "topicCode": "SN-CH-jahrgangsstufe-11-leistungskurs-LB1",
                  "words": 53,
                  "text": "Anwenden des Wissens über den Zusammenhang zwischen Struktur und Eigenschaften von Stoffen zur Ordnung von ausgewählten anorganischen und organischen Stoffen..."
                },
                {
                  "id": "sn-chem-sekii-sn-ch-jahrgangsstufe-11-grundkurs-lb1-001-03-9aec0680",
                  "topicCode": "SN-CH-jahrgangsstufe-11-grundkurs-LB1",
                  "words": 51,
                  "text": "Kennen des Zusammenhangs zwischen Atombau und Stellung der Haupt- und Nebengruppenelemente im Periodensystem Basiskonzept: Konzept vom Aufbau und von den Eig..."
                },
                {
                  "id": "sn-chem-sekii-sn-ch-jahrgangsstufe-11-leistungskurs-lb1-037-03-9aec0680",
                  "topicCode": "SN-CH-jahrgangsstufe-11-leistungskurs-LB1",
                  "words": 51,
                  "text": "Kennen des Zusammenhangs zwischen Atombau und Stellung der Haupt- und Nebengruppenelemente im Periodensystem Basiskonzept: Konzept vom Aufbau und von den Eig..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Sachsen-Chemie-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-chemie-sachsen-2025.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Sachsen-Chemie-Passagegruppen aus Lern- und Wahlbereichen sind vorhanden",
                    "passed": true,
                    "details": "33 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-chemie-sachsen-2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Sachsen-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "302 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "302 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 84%. Kritisch gepruefte Abweichung: 302 Source-Ziele; HE/BW/BB/BE/HH/MV/NI/NW/RP/SH/ST/SL Sek-II-Chemie = 202/126/203/203/75/122/333/154/325/165/324/712 Source-Ziele. Sachsen Sek II trennt GK und LK im selben amtlichen Lehrplan."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "302 Source-Ziele liegen vor; MAPPING-3 ist fachlich reviewed."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "302/302 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 302/302; Mappings: 302/302; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "1e86b8e6-3a95-5df3-8622-8c2afbb989e1",
            "title": "DE-SN - Chemie Sekundarstufe I (Sachsen, Lehrplan Gymnasium 2025 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_CHEMIE_SEKI_LEHRPLAN_GYMNASIUM_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-CH-2025",
                "title": "Lehrplan Gymnasium Chemie Sachsen 2004/2007/2009/2011/2019/2022/2025",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-chemie-sachsen-2025.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/521/lnuYavMOfLLQRd2MlehG",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 176,
            "passages": 28,
            "mappedSourceGoals": 176,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 48,
            "partialMappings": 128,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "176 Source-Ziele; HE/BW/HB/HH/MV/NI/NW/RP/SH/ST/SL Sek-I-Chemie = 122/65/42/76/114/196/79/65/156/270/190 Source-Ziele. Sachsen Sek I wird aus operatorbezogenen Lernbereichs- und Wahlbereichszeilen des amtlichen Lehrplans extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 19.22159090909091,
              "p90Words": 29,
              "maxWords": 47,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "sn-chem-seki-sn-ch-klassenstufe-8-lb2-023-01-6ad493b9",
                  "topicCode": "SN-CH-klassenstufe-8-LB2",
                  "words": 47,
                  "text": "Übertragen des Wissens über Stoffgemische auf das Vorkommen von Wasser in der Natur Wasser als Löse- und Transportmittel experimentelles Untersuchen von chem..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Sachsen-Chemie-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-chemie-sachsen-2025.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Sachsen-Chemie-Passagegruppen aus Lern- und Wahlbereichen sind vorhanden",
                    "passed": true,
                    "details": "28 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-chemie-sachsen-2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Sachsen-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "176 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "176 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median 88%. Kritisch gepruefte Abweichung: 176 Source-Ziele; HE/BW/HB/HH/MV/NI/NW/RP/SH/ST/SL Sek-I-Chemie = 122/65/42/76/114/196/79/65/156/270/190 Source-Ziele. Sachsen Sek I wird aus operatorbezogenen Lernbereichs- und Wahlbereichszeilen des amtlichen Lehrplans extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "176 Source-Ziele liegen vor; MAPPING-3 ist fachlich reviewed."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "176/176 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 176/176; Mappings: 176/176; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f9e8b305-d604-55c5-82b0-77a734925371",
            "title": "DE-ST - Chemie Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_CHEMIE_SEKI_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-CH-2022",
                "title": "Fachlehrplan Gymnasium Chemie Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Chemie_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Chemie_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "ST-CH-2019",
                "title": "Fachlehrplan Gymnasium Chemie Sachsen-Anhalt 2019",
                "path": "curricula/DE/Gymnasium/input/ST/Chemie_FLP_Gym_01_07_2019.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung/Chemie_FLP_Gym_01_07_2019.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 270,
            "passages": 12,
            "mappedSourceGoals": 270,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 55,
            "partialMappings": 215,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "270 Source-Ziele; HE/BW/HB/NI/NW/SH Sek-I-Chemie = 122/65/42/196/79/156 Source-Ziele; Sachsen-Anhalt wird aus Kompetenz-, Wissens- und Experimentierpunkten des amtlichen Fachlehrplans extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.722222222222221,
              "p90Words": 15,
              "maxWords": 40,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Sachsen-Anhalt-Chemie-Fachlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "1/1 Originalquelle bereitgestellt: curricula/DE/Gymnasium/input/ST/FLP_Chemie_Gym_01082022_swd.pdf; Baseline: curricula/DE/Gymnasium/input/ST/Chemie_FLP_Gym_01_07_2019.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Sachsen-Anhalt-Chemie-Stufen sind als Passagegruppen vorhanden",
                    "passed": true,
                    "details": "3/3 Stufen; 12 Kompetenzschwerpunkte."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Chemie_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Sachsen-Anhalt-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "270 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "270 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median 189%. Kritisch gepruefte Abweichung: 270 Source-Ziele; HE/BW/HB/NI/NW/SH Sek-I-Chemie = 122/65/42/196/79/156 Source-Ziele; Sachsen-Anhalt wird aus Kompetenz-, Wissens- und Experimentierpunkten des amtlichen Fachlehrplans extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "270 Source-Ziele liegen vor; MAPPING-3 kann gegen diese Source-Extraction-IDs laufen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "Review-Entscheidungen referenzieren Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "Review-Mappings referenzieren existierende Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele sind fachlich reviewed",
                    "passed": true,
                    "details": "270/270 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 270/270; Mappings: 270/270; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "86a99136-152f-5da7-84f2-3a0ed9f53697",
            "title": "DE-ST - Chemie Sekundarstufe II (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/ST/upper-secondary/source-extraction/DE_ST_CHEMIE_SEKII_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-CH-2022",
                "title": "Fachlehrplan Gymnasium Chemie Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Chemie_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Chemie_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "ST-CH-2019",
                "title": "Fachlehrplan Gymnasium Chemie Sachsen-Anhalt 2019",
                "path": "curricula/DE/Gymnasium/input/ST/Chemie_FLP_Gym_01_07_2019.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung/Chemie_FLP_Gym_01_07_2019.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 324,
            "passages": 15,
            "mappedSourceGoals": 324,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 40,
            "partialMappings": 284,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "324 Source-Ziele; BW/NW/SH/HE/BB/BE/NI Sek-II-Chemie = 126/154/165/202/203/203/333 Source-Ziele; Sachsen-Anhalt fuehrt gAN, eAN und Wahlpflichtfach im selben Fachlehrplan."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.003086419753087,
              "p90Words": 16,
              "maxWords": 39,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Sachsen-Anhalt-Chemie-Fachlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "1/1 Originalquelle bereitgestellt: curricula/DE/Gymnasium/input/ST/FLP_Chemie_Gym_01082022_swd.pdf; Baseline: curricula/DE/Gymnasium/input/ST/Chemie_FLP_Gym_01_07_2019.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Sachsen-Anhalt-Chemie-Stufen sind als Passagegruppen vorhanden",
                    "passed": true,
                    "details": "3/3 Stufen; 15 Kompetenzschwerpunkte."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Chemie_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Sachsen-Anhalt-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "324 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "324 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 98%. Kritisch gepruefte Abweichung: 324 Source-Ziele; BW/NW/SH/HE/BB/BE/NI Sek-II-Chemie = 126/154/165/202/203/203/333 Source-Ziele; Sachsen-Anhalt fuehrt gAN, eAN und Wahlpflichtfach im selben Fachlehrplan."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "324 Source-Ziele liegen vor; MAPPING-3 kann gegen diese Source-Extraction-IDs laufen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "Review-Entscheidungen referenzieren Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "Review-Mappings referenzieren existierende Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele sind fachlich reviewed",
                    "passed": true,
                    "details": "324/324 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 324/324; Mappings: 324/324; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "6a601059-052b-5a4b-8aff-a121bc2cf968",
            "title": "DE-TH - Chemie Qualifikationsphase (Thueringen, Lehrplan Gymnasium 2024 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Chemie",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/TH/upper-secondary/source-extraction/DE_TH_CHEMIE_SEKII_LEHRPLAN_GYMNASIUM_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-CH-2024",
                "title": "Thueringer Lehrplan Chemie fuer den Erwerb der allgemeinen Hochschulreife 2024",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Chemie_2024.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/63707?dateiname=Chemie_Lehrplan_AHR_2024-11-13.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 225,
            "passages": 55,
            "mappedSourceGoals": 225,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 39,
            "partialMappings": 186,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "225 Source-Ziele; HE/BW/BB/BE/HH/MV/NI/NW/RP/SH/ST/SL/SN Sek-II-Chemie = 202/126/203/203/97/122/333/154/325/165/324/712/302 Source-Ziele. Thueringen Sek II wird aus den Sach- und Methodenkompetenzen der Qualifikationsphase des amtlichen Lehrplans 2024 extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.124444444444444,
              "p90Words": 16,
              "maxWords": 27,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Thueringen-Chemie-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Chemie_2024.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Thueringen-Chemie-Passagegruppen aus Sek I und Qualifikationsphase sind vorhanden",
                    "passed": true,
                    "details": "55 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Chemie_2024.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Thueringen-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "225 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "225 Source-Ziele; Vergleich HE/BW SEKII (126/202); Median 164; zulässiger 30%-Median-Korridor 115-213; Abweichung vom Median 37%. Kritisch gepruefte Abweichung: 225 Source-Ziele; HE/BW/BB/BE/HH/MV/NI/NW/RP/SH/ST/SL/SN Sek-II-Chemie = 202/126/203/203/97/122/333/154/325/165/324/712/302 Source-Ziele. Thueringen Sek II wird aus den Sach- und Methodenkompetenzen der Qualifikationsphase des amtlichen Lehrplans 2024 extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "225 Source-Ziele liegen vor; MAPPING-3 ist fachlich reviewed."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "225/225 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 225/225; Mappings: 225/225; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "d416f737-fb4c-585f-85a5-cd9a94c20cbe",
            "title": "DE-TH - Chemie Sekundarstufe I (Thueringen, Lehrplan Gymnasium 2024 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Chemie",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_CHEMIE_SEKI_LEHRPLAN_GYMNASIUM_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-CH-2024",
                "title": "Thueringer Lehrplan Chemie fuer den Erwerb der allgemeinen Hochschulreife 2024",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Chemie_2024.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/63707?dateiname=Chemie_Lehrplan_AHR_2024-11-13.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 224,
            "passages": 24,
            "mappedSourceGoals": 224,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 56,
            "partialMappings": 168,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "224 Source-Ziele; HE/BW/HB/HH/MV/NI/NW/RP/SH/ST/SL/SN Sek-I-Chemie = 122/65/42/76/114/196/79/65/156/270/190/176 Source-Ziele. Thueringen Sek I wird aus den Sach- und Methodenkompetenzen der Klassenstufen 7/8 und 9/10 extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.709821428571429,
              "p90Words": 16,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Thueringen-Chemie-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Chemie_2024.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Thueringen-Chemie-Passagegruppen aus Sek I und Qualifikationsphase sind vorhanden",
                    "passed": true,
                    "details": "24 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Chemie_2024.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Thueringen-Chemie-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "224 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "224 Source-Ziele; Vergleich HE/BW SEKI (65/122); Median 94; zulässiger 30%-Median-Korridor 66-121; Abweichung vom Median 140%. Kritisch gepruefte Abweichung: 224 Source-Ziele; HE/BW/HB/HH/MV/NI/NW/RP/SH/ST/SL/SN Sek-I-Chemie = 122/65/42/76/114/196/79/65/156/270/190/176 Source-Ziele. Thueringen Sek I wird aus den Sach- und Methodenkompetenzen der Klassenstufen 7/8 und 9/10 extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "224 Source-Ziele liegen vor; MAPPING-3 ist fachlich reviewed."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "224/224 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 224/224; Mappings: 224/224; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-chemistry-sek2",
          "label": "Sekundarstufe II",
          "selectedAtomicGoals": 276,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 276,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 276,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 14,
                "terminalAutonomyGoalsWithExamData": 14,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 473,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 5865,
            "sourceOriginalGoals": 5865,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 5865,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 5865,
            "sourceMappedToViewAtomicGoals": 5865,
            "sourceOriginalGoals": 5865,
            "sourceFullyCoveredOriginalGoals": 5865,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 99,
            "maxVisibleAtomicGoals": 334,
            "maxSourceBackedAtomicGoals": 334,
            "totalAtomicGoals": 336
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 921 upper-secondary source-to-canonical mapping edge(s), including 31 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 32,
            "sourceGoals": 3581,
            "sourceGoalsWithCourseLevel": 3581,
            "gkLkSourceGoals": 1766,
            "lkSourceGoals": 1322,
            "unspecifiedSourceGoals": 406,
            "checkedMappingEdges": 921,
            "defaultedUnspecifiedMappingEdges": 172,
            "reviewedCourseLevelExceptions": 31,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 32,
            "peerBaselineChecks": 27,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 15,
            "leafGoals": 199,
            "atomic": 199,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 54/376 ordinary atomic goals intentionally use memorization support, 55/55 primary cards are kept with origin traces, all 6 memory goals are traced, and 0 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 376,
            "noMemoryNeeded": 322,
            "memoryRequired": 54,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 55,
            "keptCards": 55,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 0,
            "visibilityCheckedMemoryRequiredGoals": 0,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 6,
            "tracedMemoryGoals": 6,
            "untracedMemoryGoals": 0,
            "deckIds": 6,
            "deckFiles": 6,
            "cardRows": 55
          },
          "details": [
            "canonical-chemistry-full: audit report docs/qa-ci/status/memory-card-review-canonical-chemistry-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "37 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 37
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 2240,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 2240",
            "diagnostic finding type APV-202: 2240"
          ]
        }
      ]
    },
    {
      "landscapeId": "8fdb83f5-b42a-5b36-ab5d-64edd4b2ab80",
      "title": "Chinesisch (Gymnasium, DE)",
      "subject": "Chinesisch",
      "frameworkId": "canonical-gymnasium-chinese",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_CHINESISCH.de.json",
      "maturity": "M0",
      "goals": 192,
      "atomicGoals": 181,
      "clusterGoals": 11,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 170,
        "rawAtomicGoals": 181,
        "coveredJurisdictions": 2,
        "sourceBackedJurisdictions": 2,
        "sourceCompleteJurisdictions": 2,
        "cleanJurisdictions": 2,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 170,
        "maxSourceBackedAtomicGoals": 170,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 399,
        "sourceMappedToViewAtomicGoals": 399,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 399,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 399,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 399,
        "sourceFullyCoveredOriginalGoals": 399,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 192,
            "visibleAtomicGoals": 170,
            "visibleClusterGoals": 22,
            "viewAtomicGoals": 170,
            "sourceBackedAtomicGoals": 170,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 170,
            "sourceMappedToViewAtomicGoals": 170,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 170,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 170,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 170,
            "sourceFullyCoveredOriginalGoals": 170,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 192,
            "visibleAtomicGoals": 170,
            "visibleClusterGoals": 22,
            "viewAtomicGoals": 170,
            "sourceBackedAtomicGoals": 170,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 229,
            "sourceMappedToViewAtomicGoals": 229,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 229,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 229,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 229,
            "sourceFullyCoveredOriginalGoals": 229,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 2,
        "completeSources": 2,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "40744ec5-7de1-5e41-9fc2-a1e774721644",
            "title": "Chinesisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Chinesisch",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_CHINESISCH_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Chinesisch",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Chinesisch.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/chinesisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 229,
            "passages": 19,
            "mappedSourceGoals": 229,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 14,
            "partialMappings": 215,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 19.90829694323144,
              "p90Words": 37,
              "maxWords": 87,
              "longGoals": 10,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "e8a11cc2-ff90-50a4-8fd7-c919bd5f6218",
                  "topicCode": "J8",
                  "words": 87,
                  "text": "wenden die Grundlagen des chinesischen Satzbaus in einfachen Sätzen an (Stellung der Wörter und Satzglieder, Wortarten bzw. Wortfunktionen im Satz, Prinzip d..."
                },
                {
                  "id": "0439ac62-6505-5c3f-8f7e-5be9067dcdf9",
                  "topicCode": "J8",
                  "words": 84,
                  "text": "benennen und beschreiben Personen (beispielsweise Alter, Herkunft, Familie), Gegenstände, Tätigkeiten, Orte und Sachverhalte auf einfache Weise und setzen si..."
                },
                {
                  "id": "b008865c-1af0-5cc5-bc16-10f705339dbf",
                  "topicCode": "J9",
                  "words": 78,
                  "text": "benennen, beschreiben und vergleichen Personen, Gegenstände, Tätigkeiten, Orte und Sachverhalte genauer und anschaulicher und setzen sie zueinander in Bezieh..."
                },
                {
                  "id": "2123cb00-cf2e-5350-ab7e-2034282991d0",
                  "topicCode": "J9",
                  "words": 68,
                  "text": "stellen und beantworten Fragen, äußern Aufforderungen und Bitten und drücken einfache Empfehlungen, Vorschläge, Pläne, Wünsche aus. Dabei verwenden sie: Satz..."
                },
                {
                  "id": "5451420d-e631-5838-bb31-a2287bbf1de6",
                  "topicCode": "J8",
                  "words": 64,
                  "text": "verstehen für die Kommunikation im Unterricht notwendige Redemittel wie Lob und positive Bewertung der Leistungen (u. a. 很好, 对), Kritik an Leistungen und Ver..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Chinesisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Chinesisch.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Chinesisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 19/19 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Chinesisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "229 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "229/229 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 229/229; Mappings: 229/229; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7651cbe2-5fb8-464d-b0c4-3e830cda41dd",
            "title": "Chinesisch Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Chinesisch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_CHINESISCH_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Chinesisch Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_CHINESISCH.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula/gymnasiale-oberstufe/chinesisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 170,
            "passages": 6,
            "mappedSourceGoals": 170,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 170,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.523529411764706,
              "p90Words": 15,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Chinesisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_CHINESISCH.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Chinesisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 6/6 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Chinesisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "170 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "170/170 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 170/170; Mappings: 170/170; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 192,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "warn",
          "summary": "2/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 2,
            "emptySourceJurisdictions": 14,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 399,
            "sourceOriginalGoals": 399,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 399,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "2/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 2,
            "sourceBackedJurisdictions": 2,
            "sourceCompleteJurisdictions": 2,
            "fullCoverageJurisdictions": 2,
            "uncoveredJurisdictions": 14,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 399,
            "sourceMappedToViewAtomicGoals": 399,
            "sourceOriginalGoals": 399,
            "sourceFullyCoveredOriginalGoals": 399,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 2,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 170,
            "maxSourceBackedAtomicGoals": 170,
            "totalAtomicGoals": 170
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 170 upper-secondary source-to-canonical mapping edge(s), including 0 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 2,
            "sourceGoals": 170,
            "sourceGoalsWithCourseLevel": 170,
            "gkLkSourceGoals": 143,
            "lkSourceGoals": 27,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 170,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 0,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 2,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "67bd301b-e11a-582d-94ba-4f4b1a4cefff",
      "title": "Deutsch (Gymnasium, DE)",
      "subject": "Deutsch",
      "frameworkId": "canonical-gymnasium-german",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_DEUTSCH.de.json",
      "maturity": "M6",
      "goals": 354,
      "atomicGoals": 291,
      "clusterGoals": 63,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 268,
        "rawAtomicGoals": 291,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 268,
        "maxSourceBackedAtomicGoals": 268,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 6222,
        "sourceMappedToViewAtomicGoals": 6222,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 6222,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 6222,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 6222,
        "sourceFullyCoveredOriginalGoals": 6222,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 172,
            "visibleAtomicGoals": 101,
            "visibleClusterGoals": 71,
            "viewAtomicGoals": 101,
            "sourceBackedAtomicGoals": 101,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 559,
            "sourceMappedToViewAtomicGoals": 559,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 559,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 559,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 559,
            "sourceFullyCoveredOriginalGoals": 559,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 105,
            "atomicCoveragePercent": 37.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 354,
            "visibleAtomicGoals": 268,
            "visibleClusterGoals": 86,
            "viewAtomicGoals": 268,
            "sourceBackedAtomicGoals": 268,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 257,
            "sourceMappedToViewAtomicGoals": 257,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 257,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 257,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 257,
            "sourceFullyCoveredOriginalGoals": 257,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 354,
            "visibleAtomicGoals": 11,
            "visibleClusterGoals": 343,
            "viewAtomicGoals": 11,
            "sourceBackedAtomicGoals": 11,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 434,
            "sourceMappedToViewAtomicGoals": 434,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 434,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 434,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 434,
            "sourceFullyCoveredOriginalGoals": 434,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 274,
            "atomicCoveragePercent": 4.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 109,
            "visibleAtomicGoals": 55,
            "visibleClusterGoals": 54,
            "viewAtomicGoals": 55,
            "sourceBackedAtomicGoals": 55,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 379,
            "sourceMappedToViewAtomicGoals": 379,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 379,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 379,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 379,
            "sourceFullyCoveredOriginalGoals": 379,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 63,
            "atomicCoveragePercent": 20.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 109,
            "visibleAtomicGoals": 55,
            "visibleClusterGoals": 54,
            "viewAtomicGoals": 55,
            "sourceBackedAtomicGoals": 55,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 379,
            "sourceMappedToViewAtomicGoals": 379,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 379,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 379,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 379,
            "sourceFullyCoveredOriginalGoals": 379,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 63,
            "atomicCoveragePercent": 20.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 59,
            "visibleAtomicGoals": 27,
            "visibleClusterGoals": 32,
            "viewAtomicGoals": 27,
            "sourceBackedAtomicGoals": 27,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 273,
            "sourceMappedToViewAtomicGoals": 273,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 273,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 273,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 273,
            "sourceFullyCoveredOriginalGoals": 273,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 29,
            "atomicCoveragePercent": 10.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 59,
            "visibleAtomicGoals": 27,
            "visibleClusterGoals": 32,
            "viewAtomicGoals": 27,
            "sourceBackedAtomicGoals": 27,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 417,
            "sourceMappedToViewAtomicGoals": 417,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 417,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 417,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 417,
            "sourceFullyCoveredOriginalGoals": 417,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 30,
            "atomicCoveragePercent": 10.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 59,
            "visibleAtomicGoals": 27,
            "visibleClusterGoals": 32,
            "viewAtomicGoals": 27,
            "sourceBackedAtomicGoals": 27,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 221,
            "sourceMappedToViewAtomicGoals": 221,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 221,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 221,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 221,
            "sourceFullyCoveredOriginalGoals": 221,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 29,
            "atomicCoveragePercent": 10.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 56,
            "visibleAtomicGoals": 28,
            "visibleClusterGoals": 28,
            "viewAtomicGoals": 28,
            "sourceBackedAtomicGoals": 28,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 226,
            "sourceMappedToViewAtomicGoals": 226,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 226,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 226,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 226,
            "sourceFullyCoveredOriginalGoals": 226,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 28,
            "atomicCoveragePercent": 10.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 59,
            "visibleAtomicGoals": 27,
            "visibleClusterGoals": 32,
            "viewAtomicGoals": 27,
            "sourceBackedAtomicGoals": 27,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 392,
            "sourceMappedToViewAtomicGoals": 392,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 392,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 392,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 392,
            "sourceFullyCoveredOriginalGoals": 392,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 29,
            "atomicCoveragePercent": 10.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 91,
            "visibleAtomicGoals": 57,
            "visibleClusterGoals": 34,
            "viewAtomicGoals": 57,
            "sourceBackedAtomicGoals": 57,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 380,
            "sourceMappedToViewAtomicGoals": 380,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 380,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 380,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 380,
            "sourceFullyCoveredOriginalGoals": 380,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 53,
            "atomicCoveragePercent": 21.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 87,
            "visibleAtomicGoals": 48,
            "visibleClusterGoals": 39,
            "viewAtomicGoals": 48,
            "sourceBackedAtomicGoals": 48,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 333,
            "sourceMappedToViewAtomicGoals": 333,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 333,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 333,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 333,
            "sourceFullyCoveredOriginalGoals": 333,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 54,
            "atomicCoveragePercent": 17.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 94,
            "visibleAtomicGoals": 48,
            "visibleClusterGoals": 46,
            "viewAtomicGoals": 48,
            "sourceBackedAtomicGoals": 48,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 600,
            "sourceMappedToViewAtomicGoals": 600,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 600,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 600,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 600,
            "sourceFullyCoveredOriginalGoals": 600,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 60,
            "atomicCoveragePercent": 17.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 87,
            "visibleAtomicGoals": 47,
            "visibleClusterGoals": 40,
            "viewAtomicGoals": 47,
            "sourceBackedAtomicGoals": 47,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 328,
            "sourceMappedToViewAtomicGoals": 328,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 328,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 328,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 328,
            "sourceFullyCoveredOriginalGoals": 328,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 52,
            "atomicCoveragePercent": 17.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 77,
            "visibleAtomicGoals": 45,
            "visibleClusterGoals": 32,
            "viewAtomicGoals": 45,
            "sourceBackedAtomicGoals": 45,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 347,
            "sourceMappedToViewAtomicGoals": 347,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 347,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 347,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 347,
            "sourceFullyCoveredOriginalGoals": 347,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 45,
            "atomicCoveragePercent": 16.8,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 79,
            "visibleAtomicGoals": 47,
            "visibleClusterGoals": 32,
            "viewAtomicGoals": 47,
            "sourceBackedAtomicGoals": 47,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 697,
            "sourceMappedToViewAtomicGoals": 697,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 697,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 697,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 697,
            "sourceFullyCoveredOriginalGoals": 697,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 45,
            "atomicCoveragePercent": 17.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 31,
        "completeSources": 31,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 4,
        "totalSteps": 4,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "c8bfdcc1-3c82-57fd-c6ce-5b401691f419",
            "title": "Deutsch Oberstufe (Brandenburg, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/source-extraction/DE_BB_DEUTSCH_SEKII_RLP_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-RLP-GOST-DEUTSCH-2022",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Teil C Deutsch Berlin-Brandenburg 2022",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Deutsch.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2022_Deutsch.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 199,
            "passages": 12,
            "mappedSourceGoals": 199,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 199,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Der gemeinsame Berlin-Brandenburg-RLP wird granular nach Standards, Wissensbestaenden und Kurshalbjahres-Schwerpunkten geschnitten. Die Zielzahl liegt im 30%-Korridor des HE/BW-Vergleichs und wird nicht aus einem Legacy-Snapshot uebernommen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Der gemeinsame Berlin-Brandenburg-RLP wird granular nach Standards, Wissensbestaenden und Kurshalbjahres-Schwerpunkten geschnitten. Die Zielzahl liegt im 30%-Korridor des HE/BW-Vergleichs und wird nicht aus einem Legacy-Snapshot uebernommen."
            },
            "sourceGoalGranularity": {
              "averageWords": 5.532663316582915,
              "p90Words": 7,
              "maxWords": 9,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Berlin-Brandenburg-Deutsch-Rahmenlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Deutsch.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete RLP-Deutsch-Abschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "12/12 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Deutsch.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen RLP-Deutsch-Passagen erzeugt",
                    "passed": true,
                    "details": "199 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "199 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median 17%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "199 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "199/199 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 199/199; Mappings: 199/199; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "fd514a90-266b-5a6f-e7db-b21df8e58729",
            "title": "Deutsch Sekundarstufe I (Brandenburg, RLP 2023 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/source-extraction/DE_BB_DEUTSCH_SEKI_RLP_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-RLP-DEUTSCH-SEKI-2023",
                "title": "Rahmenlehrplan 1-10 Teil C Deutsch Berlin-Brandenburg, Brandenburg 2023",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/BB_RLP_2023_Teil_C_Deu_GenF_1.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/getrennt_2023/BB_RLP_2023_Teil_C_Deu_GenF_1.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 180,
            "passages": 15,
            "mappedSourceGoals": 180,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 180,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Der gemeinsame Berlin-Brandenburg-RLP wird granular nach Standards, Wissensbestaenden und Kurshalbjahres-Schwerpunkten geschnitten. Die Zielzahl liegt im 30%-Korridor des HE/BW-Vergleichs und wird nicht aus einem Legacy-Snapshot uebernommen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Der gemeinsame Berlin-Brandenburg-RLP wird granular nach Standards, Wissensbestaenden und Kurshalbjahres-Schwerpunkten geschnitten. Die Zielzahl liegt im 30%-Korridor des HE/BW-Vergleichs und wird nicht aus einem Legacy-Snapshot uebernommen."
            },
            "sourceGoalGranularity": {
              "averageWords": 4.644444444444445,
              "p90Words": 8,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Berlin-Brandenburg-Deutsch-Rahmenlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/BB_RLP_2023_Teil_C_Deu_GenF_1.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete RLP-Deutsch-Abschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "15/15 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/BB_RLP_2023_Teil_C_Deu_GenF_1.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen RLP-Deutsch-Passagen erzeugt",
                    "passed": true,
                    "details": "180 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "180 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median -24%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "180 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "180/180 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 180/180; Mappings: 180/180; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8185beac-6d1c-5e15-9c92-45a437e52338",
            "title": "Deutsch Oberstufe (Berlin, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/source-extraction/DE_BE_DEUTSCH_SEKII_RLP_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-RLP-GOST-DEUTSCH-2022",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Teil C Deutsch Berlin-Brandenburg 2022",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Deutsch.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2022_Deutsch.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 199,
            "passages": 12,
            "mappedSourceGoals": 199,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 199,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Der gemeinsame Berlin-Brandenburg-RLP wird granular nach Standards, Wissensbestaenden und Kurshalbjahres-Schwerpunkten geschnitten. Die Zielzahl liegt im 30%-Korridor des HE/BW-Vergleichs und wird nicht aus einem Legacy-Snapshot uebernommen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Der gemeinsame Berlin-Brandenburg-RLP wird granular nach Standards, Wissensbestaenden und Kurshalbjahres-Schwerpunkten geschnitten. Die Zielzahl liegt im 30%-Korridor des HE/BW-Vergleichs und wird nicht aus einem Legacy-Snapshot uebernommen."
            },
            "sourceGoalGranularity": {
              "averageWords": 5.532663316582915,
              "p90Words": 7,
              "maxWords": 9,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Berlin-Brandenburg-Deutsch-Rahmenlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Deutsch.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete RLP-Deutsch-Abschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "12/12 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Deutsch.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen RLP-Deutsch-Passagen erzeugt",
                    "passed": true,
                    "details": "199 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "199 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median 17%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "199 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "199/199 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 199/199; Mappings: 199/199; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "96d803c6-76dd-56cf-4691-be8d0f523bf2",
            "title": "Deutsch Sekundarstufe I (Berlin, RLP 2023 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/source-extraction/DE_BE_DEUTSCH_SEKI_RLP_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-RLP-DEUTSCH-SEKI-2023",
                "title": "Rahmenlehrplan 1-10 Teil C Deutsch Berlin-Brandenburg, Brandenburg 2023",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/BB_RLP_2023_Teil_C_Deu_GenF_1.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/getrennt_2023/BB_RLP_2023_Teil_C_Deu_GenF_1.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 180,
            "passages": 15,
            "mappedSourceGoals": 180,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 180,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Der gemeinsame Berlin-Brandenburg-RLP wird granular nach Standards, Wissensbestaenden und Kurshalbjahres-Schwerpunkten geschnitten. Die Zielzahl liegt im 30%-Korridor des HE/BW-Vergleichs und wird nicht aus einem Legacy-Snapshot uebernommen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Der gemeinsame Berlin-Brandenburg-RLP wird granular nach Standards, Wissensbestaenden und Kurshalbjahres-Schwerpunkten geschnitten. Die Zielzahl liegt im 30%-Korridor des HE/BW-Vergleichs und wird nicht aus einem Legacy-Snapshot uebernommen."
            },
            "sourceGoalGranularity": {
              "averageWords": 4.644444444444445,
              "p90Words": 8,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Berlin-Brandenburg-Deutsch-Rahmenlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/BB_RLP_2023_Teil_C_Deu_GenF_1.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete RLP-Deutsch-Abschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "15/15 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/BB_RLP_2023_Teil_C_Deu_GenF_1.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen RLP-Deutsch-Passagen erzeugt",
                    "passed": true,
                    "details": "180 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "180 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median -24%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "180 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "180/180 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 180/180; Mappings: 180/180; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ac49d99c-61e5-5cb0-15a6-cf194cf554f7",
            "title": "Deutsch Kursstufe (Baden-Wuerttemberg, BP2016 V2 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_DEUTSCH_SEKII_BP2016_V2.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-D-V2",
                "title": "Bildungsplan 2016 Gymnasium Deutsch Baden-Wuerttemberg, Fassung vom 29. Februar 2024 (V2)",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_D_V2.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_D.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 225,
            "passages": 10,
            "mappedSourceGoals": 225,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 225,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: BW Deutsch V2 wird granular nach amtlichen Kompetenznummern geschnitten. Die hohe Zahl ist plausibel, weil die Quelle anders als die Hessen-Sek-I-Topic-Extraction jede nummerierte Kompetenz einzeln ausweist; die Zuordnung bleibt als partial/Sammelziel-Mapping transparent.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: BW Deutsch V2 wird granular nach amtlichen Kompetenznummern geschnitten. Die hohe Zahl ist plausibel, weil die Quelle anders als die Hessen-Sek-I-Topic-Extraction jede nummerierte Kompetenz einzeln ausweist; die Zuordnung bleibt als partial/Sammelziel-Mapping transparent."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.022222222222222,
              "p90Words": 22,
              "maxWords": 62,
              "longGoals": 4,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "d51e1f43-0515-5338-24bf-5ac21efebaeb",
                  "topicCode": "3.4.1.1",
                  "words": 62,
                  "text": "Fachbegriffe zur formalen Beschreibung von Texten verwenden: – Figur, Autor, Erzähler, Erzählperspektive, Erzählform, Erzählhaltung, Erzählstruktur, innere u..."
                },
                {
                  "id": "d0d75706-91ca-5bac-76a5-cd5970ab41f8",
                  "topicCode": "3.5.1.1",
                  "words": 62,
                  "text": "Fachbegriffe zur formalen Beschreibung von Texten verwenden: – Figur, Autor, Erzähler, Erzählperspektive, Erzählform, Erzählhaltung, Erzählstruktur, innere u..."
                },
                {
                  "id": "0470450f-134f-57b6-d944-deea62e2f906",
                  "topicCode": "3.5.1.2",
                  "words": 56,
                  "text": "selbstständig Untersuchungsaspekte entwickeln und – Thema, zentrale Thesen und Argumente – Aufbau (auch argumentativer Status von Textteilen) und Argumentati..."
                },
                {
                  "id": "2d7c2169-ee2c-511e-edf9-038b56c10126",
                  "topicCode": "3.4.1.2",
                  "words": 46,
                  "text": "selbstständig Untersuchungsaspekte entwickeln und – Thema, zentrale Thesen und Argumente – Aufbau (auch argumentativer Status von Textteilen) und Argumentati..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher BW-Deutsch-Bildungsplan V2 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_D_V2.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BW-Deutsch-Kompetenzabschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "10/10 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_D_V2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen BW-Deutsch-Kompetenznummern erzeugt",
                    "passed": true,
                    "details": "225 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "225 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "225/225 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 225/225; Mappings: 225/225; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4e5a952b-da6f-5625-01dc-402de50055f5",
            "title": "Deutsch Sekundarstufe I (Baden-Wuerttemberg, BP2016 V2 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_DEUTSCH_SEKI_BP2016_V2.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-D-V2",
                "title": "Bildungsplan 2016 Gymnasium Deutsch Baden-Wuerttemberg, Fassung vom 29. Februar 2024 (V2)",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_D_V2.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_D.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 334,
            "passages": 15,
            "mappedSourceGoals": 334,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 334,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: BW Deutsch V2 wird granular nach amtlichen Kompetenznummern geschnitten. Die hohe Zahl ist plausibel, weil die Quelle anders als die Hessen-Sek-I-Topic-Extraction jede nummerierte Kompetenz einzeln ausweist; die Zuordnung bleibt als partial/Sammelziel-Mapping transparent.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: BW Deutsch V2 wird granular nach amtlichen Kompetenznummern geschnitten. Die hohe Zahl ist plausibel, weil die Quelle anders als die Hessen-Sek-I-Topic-Extraction jede nummerierte Kompetenz einzeln ausweist; die Zuordnung bleibt als partial/Sammelziel-Mapping transparent."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.751497005988025,
              "p90Words": 24,
              "maxWords": 74,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "33b8ca0c-50d9-59de-8ca3-922b030d396d",
                  "topicCode": "3.3.1.1",
                  "words": 74,
                  "text": "Fachbegriffe zur formalen Beschreibung von Texten verwenden: – Figur, Autor, Erzähler, Erzählperspektive, Erzählform, Erzählhaltung, Erzählstruktur, Erzählze..."
                },
                {
                  "id": "bd45892b-c2da-5b3f-9771-9fe540fd8415",
                  "topicCode": "3.2.1.1",
                  "words": 55,
                  "text": "Fachbegriffe zur formalen Beschreibung von Texten verwenden: – Figur, Autor, Erzähler, Erzählperspektive, Erzählform, Erzählstruktur, innere und äußere Handl..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher BW-Deutsch-Bildungsplan V2 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_D_V2.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BW-Deutsch-Kompetenzabschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "15/15 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_D_V2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen BW-Deutsch-Kompetenznummern erzeugt",
                    "passed": true,
                    "details": "334 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "334 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "334/334 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 334/334; Mappings: 334/334; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "05f1cd27-5a58-5415-8fda-d4807067f70a",
            "title": "Deutsch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Deutsch",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_DEUTSCH_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Deutsch",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Deutsch.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/deutsch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 434,
            "passages": 49,
            "mappedSourceGoals": 434,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 11,
            "partialMappings": 423,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 30.566820276497698,
              "p90Words": 49,
              "maxWords": 152,
              "longGoals": 57,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "194ee49a-b00b-5f37-aafd-bc2f4c2e7f69",
                  "topicCode": "J12",
                  "words": 152,
                  "text": "erschließen und reflektieren in der Auseinandersetzung mit Literatur die Grundideen von Klassik und Romantik (v. a. Humanitäts- und Harmonieideal, Bildungsid..."
                },
                {
                  "id": "67e3855e-69aa-5988-b5ec-50fd0d2af690",
                  "topicCode": "J12",
                  "words": 152,
                  "text": "erschließen und reflektieren in der Auseinandersetzung mit Literatur die Grundideen von Klassik und Romantik (v. a. Humanitäts- und Harmonieideal, Bildungsid..."
                },
                {
                  "id": "d0737aa3-aae6-5429-8284-c095889f2b59",
                  "topicCode": "J10",
                  "words": 138,
                  "text": "erschließen Inhalt, Aufbau und Gestaltung literarischer Texte in ihrem Zusammenwirken, untersuchen den Umgang mit traditionellen Gestaltungsmitteln und dicht..."
                },
                {
                  "id": "2611513c-8a5c-571b-8137-e545a6a189ed",
                  "topicCode": "J11",
                  "words": 122,
                  "text": "interpretieren literarische Texte, indem sie deren Inhalt, Aufbau und Gestaltung in ihrem Zusammenwirken erschließen und ggf. gesellschaftliche, poetologisch..."
                },
                {
                  "id": "24de36d4-0900-53d0-b619-faa7fc765f21",
                  "topicCode": "J9",
                  "words": 106,
                  "text": "erschließen Inhalt, Aufbau und Gestaltung literarischer Texte in ihrem Zusammenwirken und entwickeln so ein Textverständnis. Sie wenden dabei gattungsspezifi..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Deutsch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Deutsch.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Deutsch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 49/49 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Deutsch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "434 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "434 Source-Ziele; Vergleich HE/BW SEKI (334/141) + SEKII (225/116); Median 408; zulässiger 30%-Median-Korridor 286-530; Abweichung vom Median 6%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "434/434 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 434/434; Mappings: 434/434; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "76570744-50d0-50b0-423c-f8b1aea1e0bc",
            "title": "Deutsch Oberstufe (Bremen, GyO Bildungsplan 2008 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HB/upper-secondary/source-extraction/DE_HB_DEUTSCH_SEKII_GYO_2008.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-DEUTSCH-GYO-2008",
                "title": "Bremen Bildungsplan Deutsch Gymnasiale Oberstufe - Qualifikationsphase (2008)",
                "path": "curricula/DE/Gymnasium/input/HB/upper-secondary/GyO_Deutsch_2008.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/GyO_Deutsch_2008.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 60,
            "passages": 8,
            "mappedSourceGoals": 60,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 60,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "60 Source-Ziele aus HB-Sek-II-GK/LK-Standards; Bremen ist hier deutlich kompakter als HE/NI/HH, weil der Bildungsplan nur vier übergreifende Kompetenzbereiche statt textsortenspezifischer Domänentabellen ausweist.",
              "status": "accepted",
              "rationale": "60 Source-Ziele aus HB-Sek-II-GK/LK-Standards; Bremen ist hier deutlich kompakter als HE/NI/HH, weil der Bildungsplan nur vier übergreifende Kompetenzbereiche statt textsortenspezifischer Domänentabellen ausweist."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.5,
              "p90Words": 20,
              "maxWords": 22,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-hb-deutsch",
                    "label": "Amtliche HB-Deutsch-Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/upper-secondary/GyO_Deutsch_2008.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-hb-deutsch",
                    "label": "Alle erwarteten HB-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "8/8 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-hb-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/upper-secondary/GyO_Deutsch_2008.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-hb-deutsch",
                    "label": "Source-Ziele aus amtlichen HB-Deutsch-Standards erzeugt",
                    "passed": true,
                    "details": "60 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-hb-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-hb-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "60 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -65%. Kritisch gepruefte Abweichung: 60 Source-Ziele aus HB-Sek-II-GK/LK-Standards; Bremen ist hier deutlich kompakter als HE/NI/HH, weil der Bildungsplan nur vier übergreifende Kompetenzbereiche statt textsortenspezifischer Domänentabellen ausweist."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-hb-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "60/60 reviewed."
                  },
                  {
                    "id": "source-goals-covered-hb-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "60/60 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4f40c2f8-037f-57a5-8ebb-5002a855fd35",
            "title": "Deutsch Sekundarstufe I (Bremen, Gymnasium Bildungsplan 2007 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/source-extraction/DE_HB_DEUTSCH_SEKI_BILDUNGSPLAN_2007.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-DEUTSCH-GYM-SEKI-2007",
                "title": "Bremen Bildungsplan Gymnasium 5-10 Deutsch (2007)",
                "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/Gy_Deutsch_2007.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_Deutsch_2007.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 166,
            "passages": 31,
            "mappedSourceGoals": 166,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 164,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "166 Source-Ziele aus HB-Sek-I-Standards; die Zahl liegt zwischen dem kompakten SH-Korridor und NI/HE und ist nach Sichtprüfung der Standard-Bulletlisten für Jahrgangsstufe 6, 8 und 10 plausibel.",
              "status": "accepted",
              "rationale": "166 Source-Ziele aus HB-Sek-I-Standards; die Zahl liegt zwischen dem kompakten SH-Korridor und NI/HE und ist nach Sichtprüfung der Standard-Bulletlisten für Jahrgangsstufe 6, 8 und 10 plausibel."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.475903614457831,
              "p90Words": 13,
              "maxWords": 21,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-hb-deutsch",
                    "label": "Amtliche HB-Deutsch-Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/lower-secondary/Gy_Deutsch_2007.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-hb-deutsch",
                    "label": "Alle erwarteten HB-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "31/31 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-hb-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/lower-secondary/Gy_Deutsch_2007.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-hb-deutsch",
                    "label": "Source-Ziele aus amtlichen HB-Deutsch-Standards erzeugt",
                    "passed": true,
                    "details": "166 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-hb-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-hb-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "166 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median -30%. Kritisch gepruefte Abweichung: 166 Source-Ziele aus HB-Sek-I-Standards; die Zahl liegt zwischen dem kompakten SH-Korridor und NI/HE und ist nach Sichtprüfung der Standard-Bulletlisten für Jahrgangsstufe 6, 8 und 10 plausibel."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-hb-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "166/166 reviewed."
                  },
                  {
                    "id": "source-goals-covered-hb-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "166/166 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f1ba2118-853f-4aa0-bef5-4f749bc621ed",
            "title": "Deutsch Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_DEUTSCH_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Deutsch Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_DEUTSCH.de.json.snapshot",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-deutsch.pdf",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 116,
            "passages": 33,
            "mappedSourceGoals": 116,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 116,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.560344827586206,
              "p90Words": 18,
              "maxWords": 21,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Deutsch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_DEUTSCH.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Deutsch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 33/33 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Deutsch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "116 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "116/116 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 116/116; Mappings: 116/116; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "47834336-3889-5b6d-84ca-e8f30eb0c727",
            "title": "Deutsch Sekundarstufe I (Hessen, G9)",
            "jurisdiction": "DE-HE",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-extraction/DE_HE_DEUTSCH_SEKI_G9.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HE-G9-DEUTSCH",
                "title": "Lehrplan Deutsch gymnasialer Bildungsgang Hessen, Jahrgangsstufen 5 bis 13",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-deutsch.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g9-deutsch.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 141,
            "passages": 18,
            "mappedSourceGoals": 141,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 141,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Erster sauberer Hessen-Sek-I-Deutsch-Passagen- und Source-Ziel-Schnitt aus dem lokalen amtlichen PDF; M3 ist gegen die ergänzte kanonische Deutsch-Sek-I-Schicht passgenau reviewed.",
              "status": "accepted",
              "rationale": "Erster sauberer Hessen-Sek-I-Deutsch-Passagen- und Source-Ziel-Schnitt aus dem lokalen amtlichen PDF; M3 ist gegen die ergänzte kanonische Deutsch-Sek-I-Schicht passgenau reviewed."
            },
            "sourceGoalGranularity": {
              "averageWords": 4.773049645390071,
              "p90Words": 7,
              "maxWords": 8,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Hessen-G9-Deutsch-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-deutsch.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Jahrgangs-Arbeitsbereiche 5.1 bis 10.3 sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "18/18 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-deutsch.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Hessen-G9-Deutsch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "141 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "141 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist angelegt",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "141/141 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 141/141; Mappings: 141/141; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "81cfaf81-ccf5-5760-b4cb-398e50623bf7",
            "title": "Deutsch Sekundarstufe I (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_DEUTSCH_SEKI_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-DEUTSCH-GYM-SEKI-2022",
                "title": "Hamburg Bildungsplan Gymnasium Sekundarstufe I Deutsch (2022)",
                "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/deutsch-gym-seki-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/122934/59b37bbb0712d24e773de536ce879146/deutsch-gym-seki-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 273,
            "passages": 19,
            "mappedSourceGoals": 273,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 60,
            "partialMappings": 213,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "273 Source-Ziele aus Hamburg Sek-I-Kompetenztabellen; liegt im Korridor der geprüften Deutsch-Sek-I-Inventare.",
              "status": "accepted",
              "rationale": "273 Source-Ziele aus Hamburg Sek-I-Kompetenztabellen; liegt im Korridor der geprüften Deutsch-Sek-I-Inventare."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.304029304029305,
              "p90Words": 16,
              "maxWords": 32,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburg-Deutsch-Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/lower-secondary/deutsch-gym-seki-2022-data.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Hamburg-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "19/19 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HH/lower-secondary/deutsch-gym-seki-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Hamburg-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "273 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "273 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median 15%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "273 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "273/273 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 273/273; Mappings: 273/273; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "580c5ad9-5547-5917-c061-3381cc450eba",
            "title": "Deutsch Studienstufe (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/source-extraction/DE_HH_DEUTSCH_SEKII_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-DEUTSCH-GYO-2022",
                "title": "Hamburg Bildungsplan Studienstufe Deutsch (2022)",
                "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/deutsch-gyo-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123046/1e58f3be0860bd56fcf3402fd10bcde5/deutsch-gyo-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 119,
            "passages": 16,
            "mappedSourceGoals": 119,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 6,
            "partialMappings": 113,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "119 Source-Ziele aus Hamburg Studienstufe-Kompetenzbullets; liegt im Korridor der geprüften Deutsch-Sek-II-Inventare.",
              "status": "accepted",
              "rationale": "119 Source-Ziele aus Hamburg Studienstufe-Kompetenzbullets; liegt im Korridor der geprüften Deutsch-Sek-II-Inventare."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.840336134453782,
              "p90Words": 21,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburg-Deutsch-Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/upper-secondary/deutsch-gyo-2022-data.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Hamburg-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "16/16 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HH/upper-secondary/deutsch-gyo-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Hamburg-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "119 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "119 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -30%. Kritisch gepruefte Abweichung: 119 Source-Ziele aus Hamburg Studienstufe-Kompetenzbullets; liegt im Korridor der geprüften Deutsch-Sek-II-Inventare."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "119 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "119/119 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 119/119; Mappings: 119/119; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "13de044d-ab4d-5d26-11e3-51c129aa954f",
            "title": "DE-MV - Deutsch Oberstufe (Mecklenburg-Vorpommern, Rahmenplan 2019 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/source-extraction/DE_MV_DEUTSCH_SEKII_RAHMENPLAN_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-DEUTSCH-SEKII-GYO-2019",
                "title": "Rahmenplan Deutsch Qualifikationsphase Gymnasiale Oberstufe Mecklenburg-Vorpommern 2019",
                "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/RP_DEU_SEK2_2019.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_DEU_SEK2_2019.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 64,
            "passages": 16,
            "mappedSourceGoals": 64,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 3,
            "partialMappings": 61,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "64 MV-Sek-II-Source-Ziele aus den linken KMK-Standardspalten und verbindlichen Kursthemen; die kompakte reine Sek-II-Zahl ist akzeptiert, weil rechte Hinweis- und Beispielspalten bewusst nicht als Pflichtziele gewertet werden.",
              "status": "accepted",
              "rationale": "64 MV-Sek-II-Source-Ziele aus den linken KMK-Standardspalten und verbindlichen Kursthemen; die kompakte reine Sek-II-Zahl ist akzeptiert, weil rechte Hinweis- und Beispielspalten bewusst nicht als Pflichtziele gewertet werden."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.140625,
              "p90Words": 18,
              "maxWords": 27,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-mv-deutsch",
                    "label": "Amtliche MV-Deutsch-Rahmenplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/upper-secondary/RP_DEU_SEK2_2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-mv-deutsch",
                    "label": "Alle erwarteten MV-Deutsch-Passagegruppen wurden extrahiert",
                    "passed": true,
                    "details": "16/16 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-mv-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/upper-secondary/RP_DEU_SEK2_2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-mv-deutsch",
                    "label": "Source-Ziele aus amtlichen MV-Deutsch-Passagen erzeugt",
                    "passed": true,
                    "details": "64 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-mv-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-mv-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "64 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -62%. Kritisch gepruefte Abweichung: 64 MV-Sek-II-Source-Ziele aus den linken KMK-Standardspalten und verbindlichen Kursthemen; die kompakte reine Sek-II-Zahl ist akzeptiert, weil rechte Hinweis- und Beispielspalten bewusst nicht als Pflichtziele gewertet werden."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-mv-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "64/64 reviewed."
                  },
                  {
                    "id": "source-goals-covered-mv-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "64/64 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e4c721b2-8a30-5033-e856-f81556b0f225",
            "title": "DE-MV - Deutsch Sekundarstufe I (Mecklenburg-Vorpommern, Rahmenplan 2025 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_DEUTSCH_SEKI_RAHMENPLAN_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-DEUTSCH-SEKI-GYM-GES-2025",
                "title": "Rahmenplan Deutsch Sekundarstufe I Gymnasium/Gesamtschule Mecklenburg-Vorpommern 2025",
                "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/RP_AB_Deu_Sek_I_Gym_Ges_2025.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_AB_Deu_Sek_I__Gym_Ges_2025.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 316,
            "passages": 24,
            "mappedSourceGoals": 316,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 36,
            "partialMappings": 280,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "316 MV-Sek-I-Source-Ziele aus Standards und verbindlichen Unterrichtsinhalten; gegen BW/HE/BY/BB/BE/NI/NW/SH/HB/HH = 559/257/434/379/379/273/417/221/226/392 Source-Ziele plausibel, weil MV beide Ebenen explizit ausweist.",
              "status": "accepted",
              "rationale": "316 MV-Sek-I-Source-Ziele aus Standards und verbindlichen Unterrichtsinhalten; gegen BW/HE/BY/BB/BE/NI/NW/SH/HB/HH = 559/257/434/379/379/273/417/221/226/392 Source-Ziele plausibel, weil MV beide Ebenen explizit ausweist."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.075949367088608,
              "p90Words": 19,
              "maxWords": 43,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-mv-deutsch",
                    "label": "Amtliche MV-Deutsch-Rahmenplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/lower-secondary/RP_AB_Deu_Sek_I_Gym_Ges_2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-mv-deutsch",
                    "label": "Alle erwarteten MV-Deutsch-Passagegruppen wurden extrahiert",
                    "passed": true,
                    "details": "24/24 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-mv-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/lower-secondary/RP_AB_Deu_Sek_I_Gym_Ges_2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-mv-deutsch",
                    "label": "Source-Ziele aus amtlichen MV-Deutsch-Passagen erzeugt",
                    "passed": true,
                    "details": "316 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-mv-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-mv-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "316 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median 33%. Kritisch gepruefte Abweichung: 316 MV-Sek-I-Source-Ziele aus Standards und verbindlichen Unterrichtsinhalten; gegen BW/HE/BY/BB/BE/NI/NW/SH/HB/HH = 559/257/434/379/379/273/417/221/226/392 Source-Ziele plausibel, weil MV beide Ebenen explizit ausweist."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-mv-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "316/316 reviewed."
                  },
                  {
                    "id": "source-goals-covered-mv-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "316/316 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "d57dd3a6-4c16-5926-3ba7-019623d282e2",
            "title": "Deutsch Oberstufe (Niedersachsen, KC 2016 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/source-extraction/DE_NI_DEUTSCH_SEKII_KC2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-DEUTSCH-SEKII-2016",
                "title": "Niedersachsen Kerncurriculum Deutsch gymnasiale Oberstufe (2016)",
                "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/ni_deutsch_gymnasiale_oberstufe_kc2016.pdf",
                "url": "https://cuvo.nibis.de/cuvo.php?p=download&upload=94",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 121,
            "passages": 12,
            "mappedSourceGoals": 121,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 5,
            "partialMappings": 116,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "121 Source-Ziele aus EF/Q-Kompetenzbullets; liegt im Korridor der geprüften Deutsch-Sek-II-Inventare. Rahmenthemen- und Autor-Beispiellisten wurden bewusst nicht als eigenständige Source-Ziele gezählt.",
              "status": "accepted",
              "rationale": "121 Source-Ziele aus EF/Q-Kompetenzbullets; liegt im Korridor der geprüften Deutsch-Sek-II-Inventare. Rahmenthemen- und Autor-Beispiellisten wurden bewusst nicht als eigenständige Source-Ziele gezählt."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.925619834710744,
              "p90Words": 19,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Niedersachsen-Deutsch-KC-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/ni_deutsch_gymnasiale_oberstufe_kc2016.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Niedersachsen-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "12/12 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NI/upper-secondary/ni_deutsch_gymnasiale_oberstufe_kc2016.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Niedersachsen-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "121 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "121 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -29%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "121 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "121/121 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 121/121; Mappings: 121/121; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "cfd8dc04-4194-5045-12dc-b88ac833ceae",
            "title": "Deutsch Sekundarstufe I (Niedersachsen, KC 2015 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/source-extraction/DE_NI_DEUTSCH_SEKI_KC2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-DEUTSCH-SEKI-2015",
                "title": "Niedersachsen Kerncurriculum Deutsch Gymnasium Schuljahrgänge 5-10 (2015)",
                "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/ni_deutsch_gymnasium_seki_kc2015.pdf",
                "url": "https://cuvo.nibis.de/index.php?k0_0=Dokumentenart&k0_1=Schulbereich&k0_2=Schulform&k0_3=Fach&p=searched_download&uploadnum=0&v0_0=Kerncurriculum&v0_1=Sek+I&v0_2=Gymnasium-Sek.I&v0_3=Deutsch",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 152,
            "passages": 18,
            "mappedSourceGoals": 152,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 24,
            "partialMappings": 128,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "152 Source-Ziele aus den tabellarischen Kompetenzbeschreibungen; liegt im Korridor der geprüften Deutsch-Sek-I-Inventare und basiert auf amtlicher CuVo-PDF-Quelle.",
              "status": "accepted",
              "rationale": "152 Source-Ziele aus den tabellarischen Kompetenzbeschreibungen; liegt im Korridor der geprüften Deutsch-Sek-I-Inventare und basiert auf amtlicher CuVo-PDF-Quelle."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.407894736842104,
              "p90Words": 23,
              "maxWords": 74,
              "longGoals": 3,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "8c7fbb64-5019-55d7-6fe5-02e4cd0ce6f3",
                  "topicCode": "SI-SEKUNDARSTUFE-I-UMGANG-MIT-LITERARISCHEN-TEXTEN",
                  "words": 74,
                  "text": "erschließen mithilfe analytischer Verfahren wesentliche inhaltliche, sprachliche und formale Elemente literarischer Texte in ihrem Zusammenwirken, kennen und..."
                },
                {
                  "id": "a61bcd46-43bd-5475-9e80-1e5567217a02",
                  "topicCode": "SI-SEKUNDARSTUFE-I-ZENTRALE-SCHREIBFORMEN-KENNEN-UND-SACHGERECHT-NUTZEN-UNTERSUCHENDES-SCHREIBEN-ANALYSIEREN-INTERPRETIEREN",
                  "words": 50,
                  "text": "formulieren ihr Textverständnis zunehmend selbstständig unter Verwendung spezifischer Aufsatzformen – Interpretation literarischer Texte, Analyse pragmatisch..."
                },
                {
                  "id": "ae24dfc0-fe02-55ec-4817-a3f4d627100b",
                  "topicCode": "SI-SEKUNDARSTUFE-I-LEISTUNGEN-VON-WORTARTEN-UND-SAETZEN-KENNEN-UND-FUER-SPRECHEN-SCHREIBEN-UND-TEXTUNTERSUCHUNG-NUTZEN",
                  "words": 50,
                  "text": "kennen und unterscheiden Wortarten, bezeichnen sie fachsprachlich richtig, erkennen und beschreiben deren syntaktische Funktion sowie sprachliche Leistung:; ..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Niedersachsen-Deutsch-KC-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/ni_deutsch_gymnasium_seki_kc2015.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Niedersachsen-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "18/18 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NI/lower-secondary/ni_deutsch_gymnasium_seki_kc2015.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Niedersachsen-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "152 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "152 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median -36%. Kritisch gepruefte Abweichung: 152 Source-Ziele aus den tabellarischen Kompetenzbeschreibungen; liegt im Korridor der geprüften Deutsch-Sek-I-Inventare und basiert auf amtlicher CuVo-PDF-Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "152 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "152/152 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 152/152; Mappings: 152/152; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "23ebb38c-0e84-5380-d382-22215190b849",
            "title": "Deutsch Oberstufe (Nordrhein-Westfalen, KLP 2023 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/source-extraction/DE_NW_DEUTSCH_SEKII_KLP2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-KLP-DEUTSCH-SEKII-2023",
                "title": "Nordrhein-Westfalen Kernlehrplan Deutsch Gymnasiale Oberstufe 2023",
                "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_d_2023_06_07.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/gost_klp_d_2023_06_07.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 191,
            "passages": 30,
            "mappedSourceGoals": 191,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 10,
            "partialMappings": 181,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "191 Source-Ziele; liegt im 30%-Korridor der geprüften Deutsch-Sek-II-Inventare nach Entfernung der Inhalts-Schwerpunktlisten und basiert auf amtlichen KLP-Kompetenzbullets."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.356020942408376,
              "p90Words": 19,
              "maxWords": 30,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NRW-Deutsch-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_d_2023_06_07.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle NRW-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "30/30 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_d_2023_06_07.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen NRW-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "191 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "191 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median 12%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "191 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "191/191 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 191/191; Mappings: 191/191; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b3ad525f-8d90-5d46-9073-51cd32f6ee87",
            "title": "Deutsch Sekundarstufe I (Nordrhein-Westfalen, KLP 2019 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/source-extraction/DE_NW_DEUTSCH_SEKI_KLP2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-KLP-DEUTSCH-SEKI-2019",
                "title": "Nordrhein-Westfalen Kernlehrplan Deutsch Sekundarstufe I Gymnasium 2019",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_d_klp_3409_2019_06_23.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_d_klp_3409_2019_06_23.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 226,
            "passages": 26,
            "mappedSourceGoals": 226,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 16,
            "partialMappings": 210,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "226 Source-Ziele; liegt im 30%-Korridor der geprüften Deutsch-Sek-I-Inventare und basiert auf amtlichen KLP-Kompetenzbullets."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.743362831858407,
              "p90Words": 21,
              "maxWords": 38,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NRW-Deutsch-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_d_klp_3409_2019_06_23.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle NRW-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "26/26 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NW/lower-secondary/g9_d_klp_3409_2019_06_23.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen NRW-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "226 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "226 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median -5%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "226 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "226/226 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 226/226; Mappings: 226/226; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "893b11ca-3528-5bcb-041b-a440d6c87601",
            "title": "DE-RP - Deutsch Oberstufe (Rheinland-Pfalz, MSS/BiSta-Synopse 2014 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/source-extraction/DE_RP_DEUTSCH_SEKII_MSS_2014.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-DEUTSCH-SEKII-MSS-2014",
                "title": "Lehrplan Deutsch Grund- und Leistungsfach in der gymnasialen Oberstufe (Mainzer Studienstufe), Anpassung an die Bildungsstandards 2014",
                "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/Deutsch_MSS_Bildungsstandards_Anpassung_2014.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?cHash=932ec41862b29737f34b7212edc8ebb7&tx_rlpbase_download%5Baction%5D=download&tx_rlpbase_download%5Bcontroller%5D=Download&tx_rlpbase_download%5Bitem%5D=56456&type=432522",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 89,
            "passages": 10,
            "mappedSourceGoals": 89,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 88,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "89 RP-Sek-II-Source-Ziele aus der linken BiSta-Spalte der MSS-Synopse; die rechte MSS-Referenzspalte und Anmerkungen werden bewusst nicht als zusätzliche Pflichtziele gezählt.",
              "status": "accepted",
              "rationale": "89 RP-Sek-II-Source-Ziele aus der linken BiSta-Spalte der MSS-Synopse; die rechte MSS-Referenzspalte und Anmerkungen werden bewusst nicht als zusätzliche Pflichtziele gezählt."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.797752808988765,
              "p90Words": 21,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-rp-deutsch",
                    "label": "Amtliche RP-Deutsch-Lehrplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/upper-secondary/Deutsch_MSS_Bildungsstandards_Anpassung_2014.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-mv-deutsch",
                    "label": "Alle erwarteten RP-Deutsch-Passagegruppen wurden extrahiert",
                    "passed": true,
                    "details": "10/10 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-rp-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/upper-secondary/Deutsch_MSS_Bildungsstandards_Anpassung_2014.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-mv-deutsch",
                    "label": "Source-Ziele aus amtlichen RP-Deutsch-Passagen erzeugt",
                    "passed": true,
                    "details": "89 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-mv-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-mv-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "89 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -48%. Kritisch gepruefte Abweichung: 89 RP-Sek-II-Source-Ziele aus der linken BiSta-Spalte der MSS-Synopse; die rechte MSS-Referenzspalte und Anmerkungen werden bewusst nicht als zusätzliche Pflichtziele gezählt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-mv-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "89/89 reviewed."
                  },
                  {
                    "id": "source-goals-covered-mv-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "89/89 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "61616d91-b106-5455-a49f-eb7edb8a4119",
            "title": "DE-RP - Deutsch Sekundarstufe I (Rheinland-Pfalz, Lehrplan 2022 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/source-extraction/DE_RP_DEUTSCH_SEKI_LEHRPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-DEUTSCH-SEKI-2022",
                "title": "Lehrplan Deutsch Sekundarstufe I, Klassen 5-10 (Rheinland-Pfalz, 2022)",
                "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/Deutsch_Sekundarstufe_I_Klassen_5_10_2022.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?cHash=451ab34498bbb890d09487fc6fe1577a&tx_rlpbase_download%5Baction%5D=download&tx_rlpbase_download%5Bcontroller%5D=Download&tx_rlpbase_download%5Bitem%5D=56458&type=432522",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 244,
            "passages": 56,
            "mappedSourceGoals": 244,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 6,
            "partialMappings": 238,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "244 RP-Sek-I-Source-Ziele aus dem gymnasial einschlägigen erhöhten Kompetenzniveau der amtlichen Kompetenzniveautabellen; gegen BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV = 559/257/434/379/379/273/417/221/226/392/380 Source-Ziele plausibel. Alle drei Niveau-Spalten additiv zu zählen würde die Deutsch-Korridorregel klar verletzen und den Gymnasium-Scope verzerren.",
              "status": "accepted",
              "rationale": "244 RP-Sek-I-Source-Ziele aus dem gymnasial einschlägigen erhöhten Kompetenzniveau der amtlichen Kompetenzniveautabellen; gegen BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV = 559/257/434/379/379/273/417/221/226/392/380 Source-Ziele plausibel. Alle drei Niveau-Spalten additiv zu zählen würde die Deutsch-Korridorregel klar verletzen und den Gymnasium-Scope verzerren."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.758196721311476,
              "p90Words": 25,
              "maxWords": 48,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "9bcc06fd-0f8a-5989-a64a-6193d31ac5d4",
                  "topicCode": "RP-SI-KOMPETENZ-KLASSEN-9-UND-10-LESEN-NACHHER-STRATEGIEN",
                  "words": 48,
                  "text": "bewerten die verschiedenen Darstellungen und Wirkungen hinsichtlich ihrer Stimmigkeit (z. B. hinsichtlich der Figurenund Handlungsgestaltung oder der vermein..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-rp-deutsch",
                    "label": "Amtliche RP-Deutsch-Lehrplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/lower-secondary/Deutsch_Sekundarstufe_I_Klassen_5_10_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-mv-deutsch",
                    "label": "Alle erwarteten RP-Deutsch-Passagegruppen wurden extrahiert",
                    "passed": true,
                    "details": "56/56 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-rp-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/lower-secondary/Deutsch_Sekundarstufe_I_Klassen_5_10_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-mv-deutsch",
                    "label": "Source-Ziele aus amtlichen RP-Deutsch-Passagen erzeugt",
                    "passed": true,
                    "details": "244 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-mv-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-mv-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "244 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median 3%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-mv-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "244/244 reviewed."
                  },
                  {
                    "id": "source-goals-covered-mv-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "244/244 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "402557d9-25c6-57d8-ac3d-b8f9f8e32dce",
            "title": "Deutsch Sekundarstufe I (Schleswig-Holstein, Fachanforderungen 2024 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SH/lower-secondary/source-extraction/DE_SH_DEUTSCH_SEKI_FACHANFORDERUNGEN_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-DEUTSCH-FA2024",
                "title": "Fachanforderungen Deutsch Allgemeinbildende Schulen Sekundarstufe I und II (Schleswig-Holstein, 2024)",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Deutsch_Sekundarstufe_2024_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/sh/faecher/deutsch/fachanforderungen.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Deutsch%20Sekundarstufe%20%282024%2C%20barrierearm%29.pdf&cid=16956",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 100,
            "passages": 21,
            "mappedSourceGoals": 100,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 5,
            "partialMappings": 95,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "100 Source-Ziele aus SH-Sek-I-KMK-Kompetenztabellen; auffällig kompakt gegenüber HE/NI/HH/BW, aber nach Gegenprüfung der linken KMK-Bildungsstandard-Spalte in Kapitel II.2.1-II.2.5 vollständig. Rechte Konkretisierungsspalten und Abschnittsprosa bleiben Belegkontext und werden nicht als eigene Lernziele gezählt.",
              "status": "accepted",
              "rationale": "100 Source-Ziele aus SH-Sek-I-KMK-Kompetenztabellen; auffällig kompakt gegenüber HE/NI/HH/BW, aber nach Gegenprüfung der linken KMK-Bildungsstandard-Spalte in Kapitel II.2.1-II.2.5 vollständig. Rechte Konkretisierungsspalten und Abschnittsprosa bleiben Belegkontext und werden nicht als eigene Lernziele gezählt."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.52,
              "p90Words": 22,
              "maxWords": 35,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-sh-deutsch",
                    "label": "Amtliche SH-Deutsch-Fachanforderungen 2024 liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Deutsch_Sekundarstufe_2024_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-sh-deutsch",
                    "label": "Alle erwarteten SH-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "21/21 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-sh-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Deutsch_Sekundarstufe_2024_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sh-deutsch",
                    "label": "Source-Ziele aus amtlichen SH-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "100 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sh-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-sh-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "100 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median -58%. Kritisch gepruefte Abweichung: 100 Source-Ziele aus SH-Sek-I-KMK-Kompetenztabellen; auffällig kompakt gegenüber HE/NI/HH/BW, aber nach Gegenprüfung der linken KMK-Bildungsstandard-Spalte in Kapitel II.2.1-II.2.5 vollständig. Rechte Konkretisierungsspalten und Abschnittsprosa bleiben Belegkontext und werden nicht als eigene Lernziele gezählt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete-sh-deutsch",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "100 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "100/100 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 100/100; Mappings: 100/100; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "3fd24747-e2fb-5810-360f-7db870b8f7ab",
            "title": "Deutsch Sekundarstufe II (Schleswig-Holstein, Fachanforderungen 2024 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/upper-secondary/source-extraction/DE_SH_DEUTSCH_SEKII_FACHANFORDERUNGEN_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-DEUTSCH-FA2024",
                "title": "Fachanforderungen Deutsch Allgemeinbildende Schulen Sekundarstufe I und II (Schleswig-Holstein, 2024)",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Deutsch_Sekundarstufe_2024_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/sh/faecher/deutsch/fachanforderungen.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Deutsch%20Sekundarstufe%20%282024%2C%20barrierearm%29.pdf&cid=16956",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 121,
            "passages": 19,
            "mappedSourceGoals": 121,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 5,
            "partialMappings": 116,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "121 Source-Ziele aus SH-Sek-II-Prozesskompetenzen und KMK-Domänentabellen; nahe an HE/NI/HH und nach Sichtprüfung der Kapitel III.2-Prozess- und Textsortentabellen vollständig.",
              "status": "accepted",
              "rationale": "121 Source-Ziele aus SH-Sek-II-Prozesskompetenzen und KMK-Domänentabellen; nahe an HE/NI/HH und nach Sichtprüfung der Kapitel III.2-Prozess- und Textsortentabellen vollständig."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.950413223140496,
              "p90Words": 22,
              "maxWords": 27,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-sh-deutsch",
                    "label": "Amtliche SH-Deutsch-Fachanforderungen 2024 liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Deutsch_Sekundarstufe_2024_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-sh-deutsch",
                    "label": "Alle erwarteten SH-Deutsch-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "19/19 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-sh-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Deutsch_Sekundarstufe_2024_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sh-deutsch",
                    "label": "Source-Ziele aus amtlichen SH-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "121 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sh-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-sh-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "121 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -29%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete-sh-deutsch",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "121 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "121/121 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 121/121; Mappings: 121/121; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8158dd92-0771-5ffb-0f93-b17937e8db17",
            "title": "DE-SL - Deutsch Oberstufe (Saarland, GOS Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_DEUTSCH_SEKII_GOS_2019_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-DEUTSCH-SEKII-EP-2019",
                "title": "Lehrplan Deutsch Einführungsphase der gymnasialen Oberstufe (Saarland, 2019)",
                "path": "curricula/DE/Gymnasium/input/SL/german-official/LP_De_EP_2019.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_GOS_ab_2019_2020/Deutsch/LP_De_EP_2019.pdf?__blob=publicationFile&v=5",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-DEUTSCH-SEKII-GK-2019-2022",
                "title": "Lehrplan Deutsch Hauptphase der gymnasialen Oberstufe Grundkurs (Saarland, 2019/2022)",
                "path": "curricula/DE/Gymnasium/input/SL/german-official/LP_De_HP_GK_2019_2022.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_GOS_ab_2019_2020/Deutsch/LP_De_HP_GK_2019_2022.pdf?__blob=publicationFile&v=5",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-DEUTSCH-SEKII-LK-2019-2022",
                "title": "Lehrplan Deutsch Hauptphase der gymnasialen Oberstufe Leistungskurs (Saarland, 2019/2022)",
                "path": "curricula/DE/Gymnasium/input/SL/german-official/LP_De_HP_LK_2019_2022.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_GOS_ab_2019_2020/Deutsch/LP_De_HP_LK_2019_2022.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 188,
            "passages": 4,
            "mappedSourceGoals": 188,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 12,
            "partialMappings": 176,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "188 SL-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP = 559/257/434/379/379/273/417/221/226/392/380/333 Source-Ziele. Die Extraktion zählt nur verbindliche Kompetenzerwartungen der linken Spalte und vermeidet doppelte GK/LK- beziehungsweise Jahrgangswiederholungen.",
              "status": "accepted",
              "rationale": "188 SL-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP = 559/257/434/379/379/273/417/221/226/392/380/333 Source-Ziele. Die Extraktion zählt nur verbindliche Kompetenzerwartungen der linken Spalte und vermeidet doppelte GK/LK- beziehungsweise Jahrgangswiederholungen."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.01063829787234,
              "p90Words": 23,
              "maxWords": 62,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "6a815c85-cbcf-5125-6a66-5ff7b0ac909c",
                  "topicCode": "SL-DEUTSCH-HAUPTPHASE-LEISTUNGSKURS-KOMPETENZBEREICH-SPRACHE-UND-SPRACHGEBRAUCH-UNTERSUCHEN-LK",
                  "words": 62,
                  "text": "„Das Erreichen der in den Lehrplänen festgelegten Vorgaben wird in der Hauptphase durch Kursarbeiten überprüft. Neben den Kursarbeiten sind – je nach Fach – ..."
                },
                {
                  "id": "a948727e-3181-559b-7829-cdfc88f30674",
                  "topicCode": "SL-DEUTSCH-HAUPTPHASE-LEISTUNGSKURS-KOMPETENZBEREICH-SPRACHE-UND-SPRACHGEBRAUCH-UNTERSUCHEN-LK",
                  "words": 57,
                  "text": "„Die Korrektur muss Art und Gewicht der Fehler erkennen lassen. Korrekturzeichen und Bewertungsmaßstäbe müssen erläutert werden. Im Fach Deutsch und in allen..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present-sl-deutsch",
                    "label": "Amtliche SL-Deutsch-Lehrplan-PDFs liegen lokal vor",
                    "passed": true,
                    "details": "3/3 PDFs vorhanden."
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-sl-deutsch",
                    "label": "SL-Deutsch-Passagegruppen wurden aus den amtlichen Kompetenzbereichen extrahiert",
                    "passed": true,
                    "details": "4 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-sl-deutsch",
                    "label": "Passage-Extraction basiert auf amtlichen Saarland-PDFs statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/german-official/LP_De_EP_2019.pdf, curricula/DE/Gymnasium/input/SL/german-official/LP_De_HP_GK_2019_2022.pdf, curricula/DE/Gymnasium/input/SL/german-official/LP_De_HP_LK_2019_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sl-deutsch",
                    "label": "Source-Ziele aus amtlichen SL-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "188 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-sl-deutsch",
                    "label": "Source-Ziel-Anzahl ist gegen geprüfte Deutsch-Inventare plausibilisiert",
                    "passed": true,
                    "details": "188 Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP = 559/257/434/379/379/273/417/221/226/392/380/333 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sl-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-sl-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "188 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median 10%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-sl-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "188/188 reviewed."
                  },
                  {
                    "id": "source-goals-covered-sl-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "188/188 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8d0eb3a2-40c8-544d-5bc3-8f48f54e8f96",
            "title": "DE-SL - Deutsch Sekundarstufe I (Saarland, Gymnasium G9 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_DEUTSCH_SEKI_GYM9_2023_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-DEUTSCH-SEKI-5-6-2023",
                "title": "Lehrplan Deutsch Klassenstufen 5 und 6 neunjähriges Gymnasium (Saarland, 2023)",
                "path": "curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_5und6_2023.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Deutsch/LP_gymn9_Dt_5und6_2023.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-DEUTSCH-SEKI-7-2023",
                "title": "Lehrplan Deutsch Klassenstufe 7 neunjähriges Gymnasium (Saarland, 2023)",
                "path": "curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_7_2023.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Deutsch/LP_gym9_Dt_7_2023.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-DEUTSCH-SEKI-8-2024",
                "title": "Lehrplan Deutsch Klassenstufe 8 neunjähriges Gymnasium (Saarland, 2024)",
                "path": "curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_8_2024.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Deutsch/LP_gym9_Dt_8_2024.pdf?__blob=publicationFile&v=1",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-DEUTSCH-SEKI-9-2024",
                "title": "Lehrplan Deutsch Klassenstufe 9 neunjähriges Gymnasium (Saarland, 2024)",
                "path": "curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_9_2024.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Deutsch/LP_gym9_Dt_9_2024.pdf?__blob=publicationFile&v=1",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-DEUTSCH-SEKI-10-2025",
                "title": "Lehrplan Deutsch Klassenstufe 10 neunjähriges Gymnasium (Saarland, 2025)",
                "path": "curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_10_2025.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Deutsch/LP_gym9_Dt_10_2025.pdf?__blob=publicationFile&v=1",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 412,
            "passages": 25,
            "mappedSourceGoals": 412,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 37,
            "partialMappings": 375,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "412 SL-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP = 559/257/434/379/379/273/417/221/226/392/380/333 Source-Ziele. Die Extraktion zählt nur verbindliche Kompetenzerwartungen der linken Spalte und vermeidet doppelte GK/LK- beziehungsweise Jahrgangswiederholungen.",
              "status": "accepted",
              "rationale": "412 SL-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP = 559/257/434/379/379/273/417/221/226/392/380/333 Source-Ziele. Die Extraktion zählt nur verbindliche Kompetenzerwartungen der linken Spalte und vermeidet doppelte GK/LK- beziehungsweise Jahrgangswiederholungen."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.842233009708737,
              "p90Words": 21,
              "maxWords": 46,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "4a7e6e86-135d-570a-d764-a862bd276e76",
                  "topicCode": "SL-DEUTSCH-KLASSEN-5-6-KOMPETENZBEREICH-SCHREIBEN",
                  "words": 46,
                  "text": "Sie kennen einfache Recherchemittel und setzen sie für kleine Rechercheaufgaben ein (Bibliothek, Nachschlagewerke, zielgerichtete Suche im Internet). Dazu re..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present-sl-deutsch",
                    "label": "Amtliche SL-Deutsch-Lehrplan-PDFs liegen lokal vor",
                    "passed": true,
                    "details": "5/5 PDFs vorhanden."
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-sl-deutsch",
                    "label": "SL-Deutsch-Passagegruppen wurden aus den amtlichen Kompetenzbereichen extrahiert",
                    "passed": true,
                    "details": "25 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-sl-deutsch",
                    "label": "Passage-Extraction basiert auf amtlichen Saarland-PDFs statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_5und6_2023.pdf, curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_7_2023.pdf, curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_8_2024.pdf, curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_9_2024.pdf, curricula/DE/Gymnasium/input/SL/german-official/LP_gymn9_Dt_10_2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sl-deutsch",
                    "label": "Source-Ziele aus amtlichen SL-Deutsch-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "412 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-sl-deutsch",
                    "label": "Source-Ziel-Anzahl ist gegen geprüfte Deutsch-Inventare plausibilisiert",
                    "passed": true,
                    "details": "412 Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP = 559/257/434/379/379/273/417/221/226/392/380/333 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sl-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-sl-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "412 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median 73%. Kritisch gepruefte Abweichung: 412 SL-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP = 559/257/434/379/379/273/417/221/226/392/380/333 Source-Ziele. Die Extraktion zählt nur verbindliche Kompetenzerwartungen der linken Spalte und vermeidet doppelte GK/LK- beziehungsweise Jahrgangswiederholungen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-sl-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "412/412 reviewed."
                  },
                  {
                    "id": "source-goals-covered-sl-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "412/412 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "da8ab22a-6de0-58c3-c201-f8d503c924a8",
            "title": "DE-SN - Deutsch Oberstufe (Sachsen, Lehrplan Gymnasium Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SN/upper-secondary/source-extraction/DE_SN_DEUTSCH_SEKII_LEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-DEUTSCH-GYM-2022",
                "title": "Lehrplan Gymnasium Deutsch Sachsen 2004/2007/2009/2011/2013/2019/2022",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-deutsch-sachsen-2022.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/135/f3QLnBqlLcQXq3XngWT5",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 84,
            "passages": 17,
            "mappedSourceGoals": 84,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 82,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "84 SN-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL = 559/257/434/379/379/273/417/221/226/392/380/333/600 Source-Ziele. Sachsen formuliert verbindliche Lernbereiche mit operatorbezogenen Zeilen; Wahlbereiche sind explizit ausgelassen, damit die Pflichtabdeckung nicht kuenstlich aufgeblasen wird.",
              "status": "accepted",
              "rationale": "84 SN-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL = 559/257/434/379/379/273/417/221/226/392/380/333/600 Source-Ziele. Sachsen formuliert verbindliche Lernbereiche mit operatorbezogenen Zeilen; Wahlbereiche sind explizit ausgelassen, damit die Pflichtabdeckung nicht kuenstlich aufgeblasen wird."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.107142857142858,
              "p90Words": 11,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-sn-deutsch",
                    "label": "Amtliches Sachsen-Deutsch-Gymnasium-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-deutsch-sachsen-2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-sn-deutsch",
                    "label": "SN-Deutsch-Pflicht-Lernbereiche wurden als Lehrplanpassagen extrahiert",
                    "passed": true,
                    "details": "17 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-sn-deutsch",
                    "label": "Passage-Extraction basiert auf der amtlichen Sachsen-PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-deutsch-sachsen-2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sn-deutsch",
                    "label": "Source-Ziele aus amtlichen SN-Deutsch-Pflicht-Lernbereichen erzeugt",
                    "passed": true,
                    "details": "84 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-sn-deutsch",
                    "label": "Source-Ziel-Anzahl ist gegen geprüfte Deutsch-Inventare plausibilisiert",
                    "passed": true,
                    "details": "84 Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL = 559/257/434/379/379/273/417/221/226/392/380/333/600 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sn-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-sn-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "84 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -51%. Kritisch gepruefte Abweichung: 84 SN-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL = 559/257/434/379/379/273/417/221/226/392/380/333/600 Source-Ziele. Sachsen formuliert verbindliche Lernbereiche mit operatorbezogenen Zeilen; Wahlbereiche sind explizit ausgelassen, damit die Pflichtabdeckung nicht kuenstlich aufgeblasen wird."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-sn-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "84/84 reviewed."
                  },
                  {
                    "id": "source-goals-covered-sn-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "84/84 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "dc786e9b-3dc1-50d9-13d2-09c569bc1c80",
            "title": "DE-SN - Deutsch Sekundarstufe I (Sachsen, Lehrplan Gymnasium Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_DEUTSCH_SEKI_LEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-DEUTSCH-GYM-2022",
                "title": "Lehrplan Gymnasium Deutsch Sachsen 2004/2007/2009/2011/2013/2019/2022",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-deutsch-sachsen-2022.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/135/f3QLnBqlLcQXq3XngWT5",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 244,
            "passages": 26,
            "mappedSourceGoals": 244,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 39,
            "partialMappings": 205,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "244 SN-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL = 559/257/434/379/379/273/417/221/226/392/380/333/600 Source-Ziele. Sachsen formuliert verbindliche Lernbereiche mit operatorbezogenen Zeilen; Wahlbereiche sind explizit ausgelassen, damit die Pflichtabdeckung nicht kuenstlich aufgeblasen wird.",
              "status": "accepted",
              "rationale": "244 SN-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL = 559/257/434/379/379/273/417/221/226/392/380/333/600 Source-Ziele. Sachsen formuliert verbindliche Lernbereiche mit operatorbezogenen Zeilen; Wahlbereiche sind explizit ausgelassen, damit die Pflichtabdeckung nicht kuenstlich aufgeblasen wird."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.200819672131148,
              "p90Words": 12,
              "maxWords": 20,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-sn-deutsch",
                    "label": "Amtliches Sachsen-Deutsch-Gymnasium-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-deutsch-sachsen-2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-sn-deutsch",
                    "label": "SN-Deutsch-Pflicht-Lernbereiche wurden als Lehrplanpassagen extrahiert",
                    "passed": true,
                    "details": "26 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-sn-deutsch",
                    "label": "Passage-Extraction basiert auf der amtlichen Sachsen-PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-deutsch-sachsen-2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sn-deutsch",
                    "label": "Source-Ziele aus amtlichen SN-Deutsch-Pflicht-Lernbereichen erzeugt",
                    "passed": true,
                    "details": "244 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-sn-deutsch",
                    "label": "Source-Ziel-Anzahl ist gegen geprüfte Deutsch-Inventare plausibilisiert",
                    "passed": true,
                    "details": "244 Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL = 559/257/434/379/379/273/417/221/226/392/380/333/600 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sn-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-sn-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "244 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median 3%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-sn-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "244/244 reviewed."
                  },
                  {
                    "id": "source-goals-covered-sn-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "244/244 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7e192410-15d8-5407-7156-463661dcb393",
            "title": "Deutsch Oberstufe (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/ST/upper-secondary/source-extraction/DE_ST_DEUTSCH_SEKII_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-DEUTSCH-GYM-2022",
                "title": "Fachlehrplan Deutsch Gymnasium Sachsen-Anhalt 01.08.2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Deutsch_Gym_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Deutsch_Gym_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 108,
            "passages": 8,
            "mappedSourceGoals": 108,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 108,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "108 DE-ST-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN = 559/257/434/379/379/273/417/221/226/392/380/333/600/328 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet.",
              "status": "accepted",
              "rationale": "108 DE-ST-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN = 559/257/434/379/379/273/417/221/226/392/380/333/600/328 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.12037037037037,
              "p90Words": 19,
              "maxWords": 23,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-de-st-deutsch",
                    "label": "Amtliches DE-ST-Deutsch-Gymnasium-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Deutsch_Gym_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-de-st-deutsch",
                    "label": "DE-ST-Deutsch-Kompetenzabschnitte wurden als Lehrplanpassagen extrahiert",
                    "passed": true,
                    "details": "8 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-de-st-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Deutsch_Gym_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-de-st-deutsch",
                    "label": "Source-Ziele aus amtlichen DE-ST-Deutsch-Kompetenzen erzeugt",
                    "passed": true,
                    "details": "108 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-de-st-deutsch",
                    "label": "Source-Ziel-Anzahl ist gegen geprüfte Deutsch-Inventare plausibilisiert",
                    "passed": true,
                    "details": "108 Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN = 559/257/434/379/379/273/417/221/226/392/380/333/600/328 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-de-st-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-de-st-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "108 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -37%. Kritisch gepruefte Abweichung: 108 DE-ST-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN = 559/257/434/379/379/273/417/221/226/392/380/333/600/328 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-de-st-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "108/108 reviewed."
                  },
                  {
                    "id": "source-goals-covered-de-st-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "108/108 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c8e41010-7ba7-52f7-ae92-34c89515bd68",
            "title": "Deutsch Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_DEUTSCH_SEKI_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-DEUTSCH-GYM-2022",
                "title": "Fachlehrplan Deutsch Gymnasium Sachsen-Anhalt 01.08.2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Deutsch_Gym_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Deutsch_Gym_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 239,
            "passages": 20,
            "mappedSourceGoals": 239,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 18,
            "partialMappings": 221,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "239 DE-ST-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN = 559/257/434/379/379/273/417/221/226/392/380/333/600/328 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet.",
              "status": "accepted",
              "rationale": "239 DE-ST-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN = 559/257/434/379/379/273/417/221/226/392/380/333/600/328 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.322175732217573,
              "p90Words": 15,
              "maxWords": 23,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-de-st-deutsch",
                    "label": "Amtliches DE-ST-Deutsch-Gymnasium-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Deutsch_Gym_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-de-st-deutsch",
                    "label": "DE-ST-Deutsch-Kompetenzabschnitte wurden als Lehrplanpassagen extrahiert",
                    "passed": true,
                    "details": "20 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-de-st-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Deutsch_Gym_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-de-st-deutsch",
                    "label": "Source-Ziele aus amtlichen DE-ST-Deutsch-Kompetenzen erzeugt",
                    "passed": true,
                    "details": "239 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-de-st-deutsch",
                    "label": "Source-Ziel-Anzahl ist gegen geprüfte Deutsch-Inventare plausibilisiert",
                    "passed": true,
                    "details": "239 Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN = 559/257/434/379/379/273/417/221/226/392/380/333/600/328 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-de-st-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-de-st-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "239 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median 1%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-de-st-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "239/239 reviewed."
                  },
                  {
                    "id": "source-goals-covered-de-st-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "239/239 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b2343143-61cf-5d7a-bfe3-26ceb10c52aa",
            "title": "Deutsch Oberstufe (Thueringen, Lehrplan Gymnasium 2019 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Deutsch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/TH/upper-secondary/source-extraction/DE_TH_DEUTSCH_SEKII_LEHRPLAN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-DEUTSCH-GYM-2019",
                "title": "Lehrplan Deutsch Gymnasium Thueringen 2019",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Deutsch_2019.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/43341?dateiname=lp_gy_deutsch_neue%20Fassung_08.02.2019_TSP.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 144,
            "passages": 5,
            "mappedSourceGoals": 144,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 13,
            "partialMappings": 131,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "144 DE-TH-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN/ST = 559/257/434/379/379/273/417/221/226/392/380/333/600/328/347 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet.",
              "status": "accepted",
              "rationale": "144 DE-TH-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN/ST = 559/257/434/379/379/273/417/221/226/392/380/333/600/328/347 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.854166666666666,
              "p90Words": 22,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-de-th-deutsch",
                    "label": "Amtliches DE-TH-Deutsch-Gymnasium-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Deutsch_2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-de-th-deutsch",
                    "label": "DE-TH-Deutsch-Kompetenzabschnitte wurden als Lehrplanpassagen extrahiert",
                    "passed": true,
                    "details": "5 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-de-th-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Deutsch_2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-de-th-deutsch",
                    "label": "Source-Ziele aus amtlichen DE-TH-Deutsch-Kompetenzen erzeugt",
                    "passed": true,
                    "details": "144 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-de-th-deutsch",
                    "label": "Source-Ziel-Anzahl ist gegen geprüfte Deutsch-Inventare plausibilisiert",
                    "passed": true,
                    "details": "144 Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN/ST = 559/257/434/379/379/273/417/221/226/392/380/333/600/328/347 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-de-th-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-de-th-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "144 Source-Ziele; Vergleich HE/BW SEKII (225/116); Median 171; zulässiger 30%-Median-Korridor 120-221; Abweichung vom Median -16%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-de-th-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "144/144 reviewed."
                  },
                  {
                    "id": "source-goals-covered-de-th-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "144/144 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8c8a80a3-b030-5f71-bcbf-c77f5b17e347",
            "title": "Deutsch Sekundarstufe I (Thueringen, Lehrplan Gymnasium 2019 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Deutsch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_DEUTSCH_SEKI_LEHRPLAN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-DEUTSCH-GYM-2019",
                "title": "Lehrplan Deutsch Gymnasium Thueringen 2019",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Deutsch_2019.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/43341?dateiname=lp_gy_deutsch_neue%20Fassung_08.02.2019_TSP.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 553,
            "passages": 15,
            "mappedSourceGoals": 553,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 78,
            "partialMappings": 475,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "553 DE-TH-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN/ST = 559/257/434/379/379/273/417/221/226/392/380/333/600/328/347 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet.",
              "status": "accepted",
              "rationale": "553 DE-TH-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN/ST = 559/257/434/379/379/273/417/221/226/392/380/333/600/328/347 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.994575045207956,
              "p90Words": 17,
              "maxWords": 25,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-de-th-deutsch",
                    "label": "Amtliches DE-TH-Deutsch-Gymnasium-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Deutsch_2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage-de-th-deutsch",
                    "label": "DE-TH-Deutsch-Kompetenzabschnitte wurden als Lehrplanpassagen extrahiert",
                    "passed": true,
                    "details": "15 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction-de-th-deutsch",
                    "label": "Passage-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Deutsch_2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-de-th-deutsch",
                    "label": "Source-Ziele aus amtlichen DE-TH-Deutsch-Kompetenzen erzeugt",
                    "passed": true,
                    "details": "553 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-de-th-deutsch",
                    "label": "Source-Ziel-Anzahl ist gegen geprüfte Deutsch-Inventare plausibilisiert",
                    "passed": true,
                    "details": "553 Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN/ST = 559/257/434/379/379/273/417/221/226/392/380/333/600/328/347 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-de-th-deutsch",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages-de-th-deutsch",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "553 Source-Ziele; Vergleich HE/BW SEKI (334/141); Median 238; zulässiger 30%-Median-Korridor 167-308; Abweichung vom Median 133%. Kritisch gepruefte Abweichung: 553 DE-TH-Deutsch-Source-Ziele; Vergleichskorridor BW/HE/BY/BB/BE/NI/NW/SH/HB/HH/MV/RP/SL/SN/ST = 559/257/434/379/379/273/417/221/226/392/380/333/600/328/347 Source-Ziele. Die Zielzahl wurde kritisch gegen bereits gepruefte Deutsch-Spuren plausibilisiert; abweichende Laenderzaehlungen folgen der jeweiligen amtlichen Kompetenzgranularitaet."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "source-goals-reviewed-de-th-deutsch",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "553/553 reviewed."
                  },
                  {
                    "id": "source-goals-covered-de-th-deutsch",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "553/553 inhaltlich abgedeckt; 1:n ist Zuordnungsform, keine Lücke."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-german-crossstage",
          "label": "Sekundarstufe I/II",
          "selectedAtomicGoals": 268,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 268,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 268,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-104",
              "status": "pass",
              "summary": "Route endpoints are visible in all relevant composition views.",
              "metrics": {
                "relevantCompositionViews": 9,
                "requiredMotivationAnchors": 1,
                "requiredTerminalAutonomyGoals": 1,
                "viewsMissingMotivationAnchors": 0,
                "viewsMissingTerminalAutonomyGoals": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 1,
                "terminalAutonomyGoalsWithExamData": 1,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 354,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 6222,
            "sourceOriginalGoals": 6222,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 6222,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 6222,
            "sourceMappedToViewAtomicGoals": 6222,
            "sourceOriginalGoals": 6222,
            "sourceFullyCoveredOriginalGoals": 6222,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 11,
            "maxVisibleAtomicGoals": 268,
            "maxSourceBackedAtomicGoals": 268,
            "totalAtomicGoals": 268
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 171 upper-secondary source-to-canonical mapping edge(s), including 36 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 31,
            "sourceGoals": 1944,
            "sourceGoalsWithCourseLevel": 1944,
            "gkLkSourceGoals": 1157,
            "lkSourceGoals": 546,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 171,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 36,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 31,
            "peerBaselineChecks": 27,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 1,
            "leafGoals": 268,
            "atomic": 268,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 74/268 ordinary atomic goals intentionally use memorization support, 48/48 primary cards are kept with origin traces, all 5 memory goals are traced, and 191 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 268,
            "noMemoryNeeded": 194,
            "memoryRequired": 74,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 48,
            "keptCards": 48,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 9,
            "visibilityCheckedMemoryRequiredGoals": 191,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 5,
            "tracedMemoryGoals": 5,
            "untracedMemoryGoals": 0,
            "deckIds": 5,
            "deckFiles": 5,
            "cardRows": 48
          },
          "details": [
            "canonical-german-full: audit report docs/qa-ci/status/memory-card-review-canonical-german-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "27 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 27
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 959,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 959",
            "diagnostic finding type APV-202: 959"
          ]
        }
      ]
    },
    {
      "landscapeId": "c8c84073-46ae-57ec-898a-882d08d7a72f",
      "title": "Englisch (Gymnasium, DE)",
      "subject": "Englisch",
      "frameworkId": "canonical-gymnasium-english",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_ENGLISCH.de.json",
      "maturity": "M0",
      "goals": 130,
      "atomicGoals": 104,
      "clusterGoals": 26,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 89,
        "rawAtomicGoals": 104,
        "coveredJurisdictions": 2,
        "sourceBackedJurisdictions": 2,
        "sourceCompleteJurisdictions": 2,
        "cleanJurisdictions": 2,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 89,
        "maxSourceBackedAtomicGoals": 89,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 103,
        "sourceMappedToViewAtomicGoals": 103,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 103,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 103,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 103,
        "sourceFullyCoveredOriginalGoals": 103,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 130,
            "visibleAtomicGoals": 89,
            "visibleClusterGoals": 41,
            "viewAtomicGoals": 89,
            "sourceBackedAtomicGoals": 89,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 94,
            "sourceMappedToViewAtomicGoals": 94,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 94,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 94,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 94,
            "sourceFullyCoveredOriginalGoals": 94,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 130,
            "visibleAtomicGoals": 89,
            "visibleClusterGoals": 41,
            "viewAtomicGoals": 89,
            "sourceBackedAtomicGoals": 89,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 9,
            "sourceMappedToViewAtomicGoals": 9,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 9,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 9,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 9,
            "sourceFullyCoveredOriginalGoals": 9,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 2,
        "completeSources": 2,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "9da8e86b-92dc-5ba0-827e-339400af2b38",
            "title": "Englisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Englisch",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_ENGLISCH_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Englisch",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Englisch.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/englisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 9,
            "passages": 1,
            "mappedSourceGoals": 9,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 8,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 2,
              "p90Words": 2,
              "maxWords": 2,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Englisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Englisch.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Englisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 1/1 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Englisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "9 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "9/9 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 9/9; Mappings: 9/9; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "bc2124fa-2974-46cc-85e7-2392e61250e1",
            "title": "Englisch Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Englisch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_ENGLISCH_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Englisch Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_ENGLISCH.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula/gymnasiale-oberstufe/englisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 94,
            "passages": 21,
            "mappedSourceGoals": 94,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 94,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 5.627659574468085,
              "p90Words": 11,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Englisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_ENGLISCH.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Englisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 21/21 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Englisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "94 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "94/94 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 94/94; Mappings: 94/94; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 130,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "warn",
          "summary": "2/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 2,
            "emptySourceJurisdictions": 14,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 103,
            "sourceOriginalGoals": 103,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 103,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "2/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 2,
            "sourceBackedJurisdictions": 2,
            "sourceCompleteJurisdictions": 2,
            "fullCoverageJurisdictions": 2,
            "uncoveredJurisdictions": 14,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 103,
            "sourceMappedToViewAtomicGoals": 103,
            "sourceOriginalGoals": 103,
            "sourceFullyCoveredOriginalGoals": 103,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 2,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 89,
            "maxSourceBackedAtomicGoals": 89,
            "totalAtomicGoals": 89
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 94 upper-secondary source-to-canonical mapping edge(s), including 8 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 2,
            "sourceGoals": 94,
            "sourceGoalsWithCourseLevel": 94,
            "gkLkSourceGoals": 70,
            "lkSourceGoals": 24,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 94,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 8,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 2,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "96a915cc-4fd6-5dc2-8cee-aaf3ab8c2977",
      "title": "Französisch (Gymnasium, DE)",
      "subject": "Französisch",
      "frameworkId": "canonical-gymnasium-french",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_FRANZOESISCH.de.json",
      "maturity": "M0",
      "goals": 331,
      "atomicGoals": 275,
      "clusterGoals": 56,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 260,
        "rawAtomicGoals": 275,
        "coveredJurisdictions": 2,
        "sourceBackedJurisdictions": 2,
        "sourceCompleteJurisdictions": 2,
        "cleanJurisdictions": 2,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 260,
        "maxSourceBackedAtomicGoals": 260,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 269,
        "sourceMappedToViewAtomicGoals": 269,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 269,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 269,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 269,
        "sourceFullyCoveredOriginalGoals": 269,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 331,
            "visibleAtomicGoals": 260,
            "visibleClusterGoals": 71,
            "viewAtomicGoals": 260,
            "sourceBackedAtomicGoals": 260,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 260,
            "sourceMappedToViewAtomicGoals": 260,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 260,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 260,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 260,
            "sourceFullyCoveredOriginalGoals": 260,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 331,
            "visibleAtomicGoals": 260,
            "visibleClusterGoals": 71,
            "viewAtomicGoals": 260,
            "sourceBackedAtomicGoals": 260,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 9,
            "sourceMappedToViewAtomicGoals": 9,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 9,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 9,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 9,
            "sourceFullyCoveredOriginalGoals": 9,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 3,
        "completeSources": 3,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "49aefe0c-f365-5f30-b84f-b9a7699e4f2c",
            "title": "Französisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Franzoesisch",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_FRANZOESISCH_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Franzoesisch",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Französisch.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/franzoesisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 9,
            "passages": 1,
            "mappedSourceGoals": 9,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 7,
            "partialMappings": 2,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 2,
              "p90Words": 2,
              "maxWords": 2,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Franzoesisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Französisch.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Franzoesisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 1/1 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Franzoesisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "9 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "9 Source-Ziele; Vergleich HE/BW SEKI (108) + SEKII (152); Median 260; zulässiger 30%-Median-Korridor 182-338; Abweichung vom Median -97%. Kritisch gepruefte Abweichung: Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "9/9 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 9/9; Mappings: 9/9; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "30acd190-609c-4109-8ee7-06fc5594af19",
            "title": "Französisch Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Franzoesisch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_FRANZOESISCH_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Franzoesisch Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_FRANZOESISCH.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula/gymnasiale-oberstufe/franzoesisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 152,
            "passages": 8,
            "mappedSourceGoals": 152,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 152,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.289473684210526,
              "p90Words": 17,
              "maxWords": 20,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Franzoesisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_FRANZOESISCH.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Franzoesisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 8/8 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Franzoesisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "152 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "152/152 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 152/152; Mappings: 152/152; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "762de708-85fa-4324-958e-56002a318f7f",
            "title": "Französisch Sekundarstufe I (Hessen, G9)",
            "jurisdiction": "DE-HE",
            "subject": "Franzoesisch",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-extraction/DE_HE_FRANZOESISCH_SEKI_G9.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Hessen Gymnasium G9 Franzoesisch Sekundarstufe I",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-json/DE_HES_S_GYM_1_FRANZOESISCH.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula/gymnasium/sekundarstufe-i/franzoesisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 108,
            "passages": 43,
            "mappedSourceGoals": 108,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 108,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.11111111111111,
              "p90Words": 10,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Franzoesisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-json/DE_HES_S_GYM_1_FRANZOESISCH.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Franzoesisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 43/43 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Franzoesisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "108 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "108/108 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 108/108; Mappings: 108/108; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 331,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "warn",
          "summary": "2/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 2,
            "emptySourceJurisdictions": 14,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 269,
            "sourceOriginalGoals": 269,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 269,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "2/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 2,
            "sourceBackedJurisdictions": 2,
            "sourceCompleteJurisdictions": 2,
            "fullCoverageJurisdictions": 2,
            "uncoveredJurisdictions": 14,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 269,
            "sourceMappedToViewAtomicGoals": 269,
            "sourceOriginalGoals": 269,
            "sourceFullyCoveredOriginalGoals": 269,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 2,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 260,
            "maxSourceBackedAtomicGoals": 260,
            "totalAtomicGoals": 260
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 152 upper-secondary source-to-canonical mapping edge(s), including 0 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 3,
            "sourceGoals": 152,
            "sourceGoalsWithCourseLevel": 152,
            "gkLkSourceGoals": 149,
            "lkSourceGoals": 3,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 152,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 0,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 3,
            "peerBaselineChecks": 1,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "92406d94-e3c1-58ec-b7c6-12122278d25a",
      "title": "Geschichte (Gymnasium, DE)",
      "subject": "Geschichte",
      "frameworkId": "canonical-gymnasium-history",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_GESCHICHTE.de.json",
      "maturity": "M6",
      "goals": 217,
      "atomicGoals": 177,
      "clusterGoals": 40,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 156,
        "rawAtomicGoals": 177,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 156,
        "maxSourceBackedAtomicGoals": 156,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 4518,
        "sourceMappedToViewAtomicGoals": 4518,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 4518,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 4518,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 4518,
        "sourceFullyCoveredOriginalGoals": 4518,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 194,
            "visibleAtomicGoals": 150,
            "visibleClusterGoals": 44,
            "viewAtomicGoals": 150,
            "sourceBackedAtomicGoals": 150,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 160,
            "sourceMappedToViewAtomicGoals": 160,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 160,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 160,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 160,
            "sourceFullyCoveredOriginalGoals": 160,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 157,
            "atomicCoveragePercent": 96.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 217,
            "visibleAtomicGoals": 156,
            "visibleClusterGoals": 61,
            "viewAtomicGoals": 156,
            "sourceBackedAtomicGoals": 156,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 260,
            "sourceMappedToViewAtomicGoals": 260,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 260,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 260,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 260,
            "sourceFullyCoveredOriginalGoals": 260,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 217,
            "visibleAtomicGoals": 62,
            "visibleClusterGoals": 155,
            "viewAtomicGoals": 62,
            "sourceBackedAtomicGoals": 62,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 190,
            "sourceMappedToViewAtomicGoals": 190,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 190,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 190,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 190,
            "sourceFullyCoveredOriginalGoals": 190,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 39.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 194,
            "visibleAtomicGoals": 150,
            "visibleClusterGoals": 44,
            "viewAtomicGoals": 150,
            "sourceBackedAtomicGoals": 150,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 335,
            "sourceMappedToViewAtomicGoals": 335,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 335,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 335,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 335,
            "sourceFullyCoveredOriginalGoals": 335,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 157,
            "atomicCoveragePercent": 96.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 194,
            "visibleAtomicGoals": 150,
            "visibleClusterGoals": 44,
            "viewAtomicGoals": 150,
            "sourceBackedAtomicGoals": 150,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 335,
            "sourceMappedToViewAtomicGoals": 335,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 335,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 335,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 335,
            "sourceFullyCoveredOriginalGoals": 335,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 157,
            "atomicCoveragePercent": 96.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 194,
            "visibleAtomicGoals": 144,
            "visibleClusterGoals": 50,
            "viewAtomicGoals": 144,
            "sourceBackedAtomicGoals": 144,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 312,
            "sourceMappedToViewAtomicGoals": 312,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 312,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 312,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 312,
            "sourceFullyCoveredOriginalGoals": 312,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 157,
            "atomicCoveragePercent": 92.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 194,
            "visibleAtomicGoals": 150,
            "visibleClusterGoals": 44,
            "viewAtomicGoals": 150,
            "sourceBackedAtomicGoals": 150,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 360,
            "sourceMappedToViewAtomicGoals": 360,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 360,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 360,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 360,
            "sourceFullyCoveredOriginalGoals": 360,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 157,
            "atomicCoveragePercent": 96.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 187,
            "visibleAtomicGoals": 132,
            "visibleClusterGoals": 55,
            "viewAtomicGoals": 132,
            "sourceBackedAtomicGoals": 132,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 197,
            "sourceMappedToViewAtomicGoals": 197,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 197,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 197,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 197,
            "sourceFullyCoveredOriginalGoals": 197,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 151,
            "atomicCoveragePercent": 84.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 180,
            "visibleAtomicGoals": 144,
            "visibleClusterGoals": 36,
            "viewAtomicGoals": 144,
            "sourceBackedAtomicGoals": 144,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 104,
            "sourceMappedToViewAtomicGoals": 104,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 104,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 104,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 104,
            "sourceFullyCoveredOriginalGoals": 104,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 145,
            "atomicCoveragePercent": 92.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 187,
            "visibleAtomicGoals": 144,
            "visibleClusterGoals": 43,
            "viewAtomicGoals": 144,
            "sourceBackedAtomicGoals": 144,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 488,
            "sourceMappedToViewAtomicGoals": 488,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 488,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 488,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 488,
            "sourceFullyCoveredOriginalGoals": 488,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 151,
            "atomicCoveragePercent": 92.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 180,
            "visibleAtomicGoals": 144,
            "visibleClusterGoals": 36,
            "viewAtomicGoals": 144,
            "sourceBackedAtomicGoals": 144,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 216,
            "sourceMappedToViewAtomicGoals": 216,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 216,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 216,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 216,
            "sourceFullyCoveredOriginalGoals": 216,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 145,
            "atomicCoveragePercent": 92.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 194,
            "visibleAtomicGoals": 132,
            "visibleClusterGoals": 62,
            "viewAtomicGoals": 132,
            "sourceBackedAtomicGoals": 132,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 258,
            "sourceMappedToViewAtomicGoals": 258,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 258,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 258,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 258,
            "sourceFullyCoveredOriginalGoals": 258,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 157,
            "atomicCoveragePercent": 84.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 187,
            "visibleAtomicGoals": 144,
            "visibleClusterGoals": 43,
            "viewAtomicGoals": 144,
            "sourceBackedAtomicGoals": 144,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 376,
            "sourceMappedToViewAtomicGoals": 376,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 376,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 376,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 376,
            "sourceFullyCoveredOriginalGoals": 376,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 150,
            "atomicCoveragePercent": 92.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 187,
            "visibleAtomicGoals": 144,
            "visibleClusterGoals": 43,
            "viewAtomicGoals": 144,
            "sourceBackedAtomicGoals": 144,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 278,
            "sourceMappedToViewAtomicGoals": 278,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 278,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 278,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 278,
            "sourceFullyCoveredOriginalGoals": 278,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 151,
            "atomicCoveragePercent": 92.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 187,
            "visibleAtomicGoals": 138,
            "visibleClusterGoals": 49,
            "viewAtomicGoals": 138,
            "sourceBackedAtomicGoals": 138,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 324,
            "sourceMappedToViewAtomicGoals": 324,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 324,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 324,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 324,
            "sourceFullyCoveredOriginalGoals": 324,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 151,
            "atomicCoveragePercent": 88.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 187,
            "visibleAtomicGoals": 138,
            "visibleClusterGoals": 49,
            "viewAtomicGoals": 138,
            "sourceBackedAtomicGoals": 138,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 325,
            "sourceMappedToViewAtomicGoals": 325,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 325,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 325,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 325,
            "sourceFullyCoveredOriginalGoals": 325,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 151,
            "atomicCoveragePercent": 88.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 31,
        "completeSources": 31,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 4,
        "totalSteps": 4,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "f57f1d07-922b-5adc-a2d0-bf47fe18f41c",
            "title": "DE-BB - Geschichte Oberstufe (Berlin-Brandenburg, RLP GOST 2025 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/source-extraction/DE_BB_GESCHICHTE_SEKII_RLP_GOST_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-GESCHICHTE-SEK-II-RLP-GOST-2025",
                "title": "Rahmenlehrplan fuer die gymnasiale Oberstufe Teil C Geschichte Berlin-Brandenburg (2025)",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2025_Geschichte.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2025/Teil_C_RLP_GOST_2025_Geschichte.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 235,
            "passages": 5,
            "mappedSourceGoals": 235,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 235,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: BE/BB Geschichte Sek II wird aus den amtlichen RLP-GOST-Abschnitten 3.1 und 3.2.1 bis 3.2.4 extrahiert. Die hoeheren Zielzahlen folgen aus der stark ausdifferenzierten Modulstruktur, liegen aber im Korridor der bereits geprueften HE/RP-Geschichte-Spuren.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: BE/BB Geschichte Sek II wird aus den amtlichen RLP-GOST-Abschnitten 3.1 und 3.2.1 bis 3.2.4 extrahiert. Die hoeheren Zielzahlen folgen aus der stark ausdifferenzierten Modulstruktur, liegen aber im Korridor der bereits geprueften HE/RP-Geschichte-Spuren."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.072340425531914,
              "p90Words": 25,
              "maxWords": 59,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "34db4447-20da-5b14-33f9-5d505cd2a9af",
                  "topicCode": "3.2.4",
                  "words": 59,
                  "text": "Gestaltung, öffentliche Wahrnehmung und zugedachte Funktion(en) sowie gegebenenfalls Instrumentalisierung eines Gedenk- bzw. Feiertages und einer oder mehrer..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher BE/BB-Geschichte-Rahmenlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2025_Geschichte.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2025/Teil_C_RLP_GOST_2025_Geschichte.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BE/BB-Geschichte-Lehrplanabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "5/5 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2025_Geschichte.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen BE/BB-Geschichte-Inhaltsvorgaben erzeugt",
                    "passed": true,
                    "details": "235 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "235 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median 85%. Kritisch gepruefte Abweichung: Kritisch geprueft: BE/BB Geschichte Sek II wird aus den amtlichen RLP-GOST-Abschnitten 3.1 und 3.2.1 bis 3.2.4 extrahiert. Die hoeheren Zielzahlen folgen aus der stark ausdifferenzierten Modulstruktur, liegen aber im Korridor der bereits geprueften HE/RP-Geschichte-Spuren."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "235 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "235/235 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 235/235; Mappings: 235/235; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4d048125-89b5-5625-0c43-a439b885edce",
            "title": "DE-BB - Geschichte Sekundarstufe I (Berlin-Brandenburg, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/source-extraction/DE_BB_GESCHICHTE_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-GESCHICHTE-SEK-I-RLP-2015",
                "title": "Rahmenlehrplan Berlin-Brandenburg Teil C Geschichte Jahrgangsstufen 7-10 (2015)",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Geschichte_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Geschichte_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 100,
            "passages": 7,
            "mappedSourceGoals": 100,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 100,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: BE/BB Geschichte Sek I wird aus sieben amtlichen RLP-Themenabschnitten 3.1 bis 3.7 extrahiert. Wahlmodule und Wahlpflichtanregungen sind im offiziellen Fachteil enthalten und werden als Source-Ziele registriert.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: BE/BB Geschichte Sek I wird aus sieben amtlichen RLP-Themenabschnitten 3.1 bis 3.7 extrahiert. Wahlmodule und Wahlpflichtanregungen sind im offiziellen Fachteil enthalten und werden als Source-Ziele registriert."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.02,
              "p90Words": 11,
              "maxWords": 23,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher BE/BB-Geschichte-Rahmenlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Geschichte_2015_11_10.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Geschichte_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BE/BB-Geschichte-Lehrplanabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "7/7 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Geschichte_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen BE/BB-Geschichte-Inhaltsvorgaben erzeugt",
                    "passed": true,
                    "details": "100 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "100 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 20%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "100 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "100/100 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 100/100; Mappings: 100/100; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "48108619-4a8c-5abc-c545-1fdd318433db",
            "title": "DE-BE - Geschichte Oberstufe (Berlin-Brandenburg, RLP GOST 2025 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/source-extraction/DE_BE_GESCHICHTE_SEKII_RLP_GOST_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-GESCHICHTE-SEK-II-RLP-GOST-2025",
                "title": "Rahmenlehrplan fuer die gymnasiale Oberstufe Teil C Geschichte Berlin-Brandenburg (2025)",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2025_Geschichte.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2025/Teil_C_RLP_GOST_2025_Geschichte.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 235,
            "passages": 5,
            "mappedSourceGoals": 235,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 235,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: BE/BB Geschichte Sek II wird aus den amtlichen RLP-GOST-Abschnitten 3.1 und 3.2.1 bis 3.2.4 extrahiert. Die hoeheren Zielzahlen folgen aus der stark ausdifferenzierten Modulstruktur, liegen aber im Korridor der bereits geprueften HE/RP-Geschichte-Spuren.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: BE/BB Geschichte Sek II wird aus den amtlichen RLP-GOST-Abschnitten 3.1 und 3.2.1 bis 3.2.4 extrahiert. Die hoeheren Zielzahlen folgen aus der stark ausdifferenzierten Modulstruktur, liegen aber im Korridor der bereits geprueften HE/RP-Geschichte-Spuren."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.072340425531914,
              "p90Words": 25,
              "maxWords": 59,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "ebea6104-ce0a-5971-c998-675dd9527aae",
                  "topicCode": "3.2.4",
                  "words": 59,
                  "text": "Gestaltung, öffentliche Wahrnehmung und zugedachte Funktion(en) sowie gegebenenfalls Instrumentalisierung eines Gedenk- bzw. Feiertages und einer oder mehrer..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher BE/BB-Geschichte-Rahmenlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2025_Geschichte.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2025/Teil_C_RLP_GOST_2025_Geschichte.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BE/BB-Geschichte-Lehrplanabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "5/5 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2025_Geschichte.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen BE/BB-Geschichte-Inhaltsvorgaben erzeugt",
                    "passed": true,
                    "details": "235 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "235 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median 85%. Kritisch gepruefte Abweichung: Kritisch geprueft: BE/BB Geschichte Sek II wird aus den amtlichen RLP-GOST-Abschnitten 3.1 und 3.2.1 bis 3.2.4 extrahiert. Die hoeheren Zielzahlen folgen aus der stark ausdifferenzierten Modulstruktur, liegen aber im Korridor der bereits geprueften HE/RP-Geschichte-Spuren."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "235 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "235/235 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 235/235; Mappings: 235/235; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "be9602da-8ee4-50be-ef7a-e028db1b6689",
            "title": "DE-BE - Geschichte Sekundarstufe I (Berlin-Brandenburg, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/source-extraction/DE_BE_GESCHICHTE_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-GESCHICHTE-SEK-I-RLP-2015",
                "title": "Rahmenlehrplan Berlin-Brandenburg Teil C Geschichte Jahrgangsstufen 7-10 (2015)",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Geschichte_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Geschichte_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 100,
            "passages": 7,
            "mappedSourceGoals": 100,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 100,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: BE/BB Geschichte Sek I wird aus sieben amtlichen RLP-Themenabschnitten 3.1 bis 3.7 extrahiert. Wahlmodule und Wahlpflichtanregungen sind im offiziellen Fachteil enthalten und werden als Source-Ziele registriert.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: BE/BB Geschichte Sek I wird aus sieben amtlichen RLP-Themenabschnitten 3.1 bis 3.7 extrahiert. Wahlmodule und Wahlpflichtanregungen sind im offiziellen Fachteil enthalten und werden als Source-Ziele registriert."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.02,
              "p90Words": 11,
              "maxWords": 23,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher BE/BB-Geschichte-Rahmenlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Geschichte_2015_11_10.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Geschichte_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BE/BB-Geschichte-Lehrplanabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "7/7 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Geschichte_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen BE/BB-Geschichte-Inhaltsvorgaben erzeugt",
                    "passed": true,
                    "details": "100 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "100 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 20%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "100 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "100/100 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 100/100; Mappings: 100/100; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "1fe45a48-5f28-5b0c-7015-d6305506a2f7",
            "title": "Geschichte Kursstufe (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_GESCHICHTE_SEKII_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-G",
                "title": "Bildungsplan 2016 Gymnasium Geschichte Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_G.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-edit/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_G.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 72,
            "passages": 9,
            "mappedSourceGoals": 72,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 72,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: BW Geschichte wird aus den amtlichen nummerierten Bildungsplan-Kompetenzen extrahiert. Die Gesamtzahl aus Sek I und Sek II liegt in derselben Groessenordnung wie die bereits vorhandenen HE/BY-Geschichte-Extraktionen; keine >30%-Abweichung als Alarmzeichen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: BW Geschichte wird aus den amtlichen nummerierten Bildungsplan-Kompetenzen extrahiert. Die Gesamtzahl aus Sek I und Sek II liegt in derselben Groessenordnung wie die bereits vorhandenen HE/BY-Geschichte-Extraktionen; keine >30%-Abweichung als Alarmzeichen."
            },
            "sourceGoalGranularity": {
              "averageWords": 21,
              "p90Words": 27,
              "maxWords": 44,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher BW-Geschichte-Bildungsplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_G.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BW-Geschichte-Kompetenzabschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "9/9 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_G.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen BW-Geschichte-Kompetenznummern erzeugt",
                    "passed": true,
                    "details": "72 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "72 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "72/72 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 72/72; Mappings: 72/72; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "5162b3df-30e0-5901-5409-7619d31d5ce8",
            "title": "Geschichte Sekundarstufe I (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_GESCHICHTE_SEKI_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-G",
                "title": "Bildungsplan 2016 Gymnasium Geschichte Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_G.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-edit/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_G.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 88,
            "passages": 21,
            "mappedSourceGoals": 88,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 88,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: BW Geschichte wird aus den amtlichen nummerierten Bildungsplan-Kompetenzen extrahiert. Die Gesamtzahl aus Sek I und Sek II liegt in derselben Groessenordnung wie die bereits vorhandenen HE/BY-Geschichte-Extraktionen; keine >30%-Abweichung als Alarmzeichen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: BW Geschichte wird aus den amtlichen nummerierten Bildungsplan-Kompetenzen extrahiert. Die Gesamtzahl aus Sek I und Sek II liegt in derselben Groessenordnung wie die bereits vorhandenen HE/BY-Geschichte-Extraktionen; keine >30%-Abweichung als Alarmzeichen."
            },
            "sourceGoalGranularity": {
              "averageWords": 19.886363636363637,
              "p90Words": 30,
              "maxWords": 48,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "6cfa44c3-4cfd-5eaf-3c89-5daa69dc28ed",
                  "topicCode": "3.2.7",
                  "words": 48,
                  "text": "Durchbruch und Scheitern der parlamentarischen Demokratie in Europa nach dem Ersten Weltkrieg bis in die 1930er-Jahre beschreiben sowie Hypothesen zu den Urs..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher BW-Geschichte-Bildungsplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_G.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BW-Geschichte-Kompetenzabschnitte sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "21/21 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_G.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen BW-Geschichte-Kompetenznummern erzeugt",
                    "passed": true,
                    "details": "88 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "88 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "88/88 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 88/88; Mappings: 88/88; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "01c2ba7a-ebd4-5840-bc09-123d7b31c914",
            "title": "Geschichte (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Geschichte",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_GESCHICHTE_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Geschichte",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Geschichte.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/geschichte",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 190,
            "passages": 36,
            "mappedSourceGoals": 190,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 190,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 27.794736842105262,
              "p90Words": 44,
              "maxWords": 113,
              "longGoals": 17,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "985f0d04-11ae-5d55-b162-5629b256cc10",
                  "topicCode": "J11",
                  "words": 113,
                  "text": "verwenden bei der Beschreibung historischer Zusammenhänge folgende bereits bekannte Grundlegende Daten und Begriffe reflektiert: um 1200 kulturelle Blüte zur..."
                },
                {
                  "id": "d2a0c21c-bb95-5815-920f-4472893dcdad",
                  "topicCode": "J11",
                  "words": 81,
                  "text": "verwenden bei der Beschreibung historischer Zusammenhänge folgende bereits bekannte Grundlegende Daten und Begriffe reflektiert: 1517 Beginn der Reformation,..."
                },
                {
                  "id": "fff03a1d-8adc-5fec-871a-cad57599d987",
                  "topicCode": "J8",
                  "words": 62,
                  "text": "verwenden und erläutern bei der Beschreibung zentraler historischer Zusammenhänge folgende Grundlegende Daten und Begriffe: 1789 Beginn der Französischen Rev..."
                },
                {
                  "id": "49fea3a3-ae73-5083-9cc0-e8fad3c95cff",
                  "topicCode": "J7",
                  "words": 58,
                  "text": "erklären und präsentieren am Beispiel der Hanse, wie sich ein überregionales Handelsnetz entwickelte, das auf der Grundlage von wirtschaftlichem Erfolg die s..."
                },
                {
                  "id": "801ee62b-320d-5287-a656-917e2c6c0848",
                  "topicCode": "J7",
                  "words": 56,
                  "text": "erkennen, dass die Begegnung zwischen Völkern und Kulturen im Mittelalter und zu Beginn der Neuzeit einerseits zu politischen, religiösen sowie kulturellen K..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Geschichte-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Geschichte.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Geschichte-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 36/36 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Geschichte-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "190 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "190 Source-Ziele; Vergleich HE/BW SEKI (88/78) + SEKII (72/182); Median 210; zulässiger 30%-Median-Korridor 147-273; Abweichung vom Median -10%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "190/190 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 190/190; Mappings: 190/190; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b304554e-c371-5b59-705d-996781663bac",
            "title": "Geschichte Sekundarstufe I (Bremen, Bildungsplan 2006 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/source-extraction/DE_HB_GESCHICHTE_SEKI_BILDUNGSPLAN_2006.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-WUK-GYMNASIUM-2006",
                "title": "Welt-Umweltkunde, Geschichte, Geografie, Politik - Bildungsplan Gymnasium 5-10 Bremen 2006",
                "path": "curricula/DE/Gymnasium/input/HB/WUK_Geschichte_Geografie_Politik_Gymnasium_5_10_2006.pdf",
                "url": "https://edumedia-depot.gei.de/server/api/core/bitstreams/6e665592-f2c1-420c-9f77-d52f4ab2ec5c/content",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 104,
            "passages": 13,
            "mappedSourceGoals": 104,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 104,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Bremen Geschichte Sek I wird aus 13 amtlichen Kompetenzpassagen mit 104 fachlichen Kompetenzen extrahiert. Die Quelle ist ein knapper standardsbasierter Bildungsplan; die Zielzahl liegt plausibel zwischen HB-Politik/WAT und anderen Geschichte-Sek-I-Spuren.",
              "status": "accepted",
              "rationale": "Bremen Geschichte Sek I wird aus 13 amtlichen Kompetenzpassagen mit 104 fachlichen Kompetenzen extrahiert. Die Quelle ist ein knapper standardsbasierter Bildungsplan; die Zielzahl liegt plausibel zwischen HB-Politik/WAT und anderen Geschichte-Sek-I-Spuren."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.942307692307692,
              "p90Words": 19,
              "maxWords": 32,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Bremer Bildungsplan WUK/Geschichte/Geografie/Politik liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/WUK_Geschichte_Geografie_Politik_Gymnasium_5_10_2006.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://edumedia-depot.gei.de/server/api/core/bitstreams/6e665592-f2c1-420c-9f77-d52f4ab2ec5c/content"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "WUK-5/6 und Geschichte-Standards 7/8 sowie 9/10 sind als Passagen vorhanden",
                    "passed": true,
                    "details": "13/13 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/WUK_Geschichte_Geografie_Politik_Gymnasium_5_10_2006.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den fachlichen Bremer Geschichte-Kompetenzen erzeugt",
                    "passed": true,
                    "details": "104 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "104 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 25%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "104 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "104/104 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 104/104; Mappings: 104/104; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "bdc89685-73d3-446c-af5a-eaf642c07463",
            "title": "Geschichte Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_GESCHICHTE_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Geschichte Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_GESCHICHTE.de.json.snapshot",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-geschichte.pdf",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 182,
            "passages": 13,
            "mappedSourceGoals": 182,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 182,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 16.417582417582416,
              "p90Words": 21,
              "maxWords": 25,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Geschichte-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_GESCHICHTE.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Geschichte-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 13/13 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Geschichte-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "182 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "182/182 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 182/182; Mappings: 182/182; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "56e489a2-1d60-54be-5b87-832957e00c90",
            "title": "Geschichte Sekundarstufe I (Hessen, G9 Source-Extraction)",
            "jurisdiction": "DE-HE",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-extraction/DE_HE_GESCHICHTE_SEKI_G9.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HE-G9-GESCHICHTE",
                "title": "Lehrplan Gymnasium Geschichte Hessen G9",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-geschichte.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g9-geschichte.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 78,
            "passages": 20,
            "mappedSourceGoals": 78,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 78,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "HE Geschichte Sek I wird aus 20 amtlichen G9-Lehrplanthemen mit 78 verbindlichen Unterrichtsinhalten extrahiert. Die Quelle ist ein älterer Lehrplan mit Sammel-Unterrichtsinhalten; deshalb liegt die Zahl unter granularen KC-Zielrastern, aber die Pflichtpunkte sind vollständig erfasst.",
              "status": "accepted",
              "rationale": "HE Geschichte Sek I wird aus 20 amtlichen G9-Lehrplanthemen mit 78 verbindlichen Unterrichtsinhalten extrahiert. Die Quelle ist ein älterer Lehrplan mit Sammel-Unterrichtsinhalten; deshalb liegt die Zahl unter granularen KC-Zielrastern, aber die Pflichtpunkte sind vollständig erfasst."
            },
            "sourceGoalGranularity": {
              "averageWords": 21.21794871794872,
              "p90Words": 30,
              "maxWords": 52,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "780de2c2-8b10-597a-3730-ace5a06e3464",
                  "topicCode": "6.5",
                  "words": 52,
                  "text": "Die Kaiserzeit Stellung und Lebensweise der Kaiser; Leben und Wohnen in Rom und auf dem Land; Romanisierung der Provinzen; Schlacht im Teutoburger Wald / Kal..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher HE-G9-Geschichte-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-geschichte.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit Download-URL dokumentiert",
                    "passed": true,
                    "details": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g9-geschichte.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Jahrgangspassagen 6.1 bis 10.5 sind extrahiert",
                    "passed": true,
                    "details": "20/20 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-geschichte.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den verbindlichen HE-Geschichte-Unterrichtsinhalten erzeugt",
                    "passed": true,
                    "details": "78 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "78 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "78/78 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 78/78; Mappings: 78/78; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "5ef7425f-7c48-5d77-9165-434de0450a04",
            "title": "Geschichte Oberstufe (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/source-extraction/DE_HH_GESCHICHTE_SEKII_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-GESCHICHTE-GYO-BILDUNGSPLAN-2022",
                "title": "Bildungsplan Studienstufe Geschichte Hamburg (2022)",
                "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/geschichte-gyo-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123066/6075aa3887f36e7b3247e79fc267f776/geschichte-gyo-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 354,
            "passages": 29,
            "mappedSourceGoals": 354,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 354,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Hamburg Studienstufe enthaelt ein dichtes Modulraster mit 28 Kern-/Wahlmodulen; daher ist die Zahl der Source-Ziele im Vergleich zu kompakten Oberstufenplaenen hoeher, aber inhaltlich durch die amtliche Tabelle begruendet.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Hamburg Studienstufe enthaelt ein dichtes Modulraster mit 28 Kern-/Wahlmodulen; daher ist die Zahl der Source-Ziele im Vergleich zu kompakten Oberstufenplaenen hoeher, aber inhaltlich durch die amtliche Tabelle begruendet."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.30225988700565,
              "p90Words": 20,
              "maxWords": 123,
              "longGoals": 10,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "8ebf2b26-30f5-5064-6242-a4fee3bca95a",
                  "topicCode": "SII-KOMPETENZEN",
                  "words": 123,
                  "text": "O4.4: an Beispielen Verträglichkeit oder Konfliktträchtigkeit unterschiedlicher kultureller Orientierungen erläutern. an Beispielen Verträglichkeit oder Konf..."
                },
                {
                  "id": "99f81931-e41f-5252-2446-46a28b361045",
                  "topicCode": "SII-KOMPETENZEN",
                  "words": 122,
                  "text": "U4.3: einen eigenen Standpunkt im Spannungsfeld von Universalismus, Eurozentrismus und Kulturrelativismus formulieren. 2.3 Inhalte Jedes der vier Semester ha..."
                },
                {
                  "id": "38d17e5c-8c7b-59f2-b193-a05143c31de0",
                  "topicCode": "SII-KOMPETENZEN",
                  "words": 83,
                  "text": "O1.3: verschiedene Herrschaftsordnungen (z. B. traditionale, autoritäre, demokratisch legitimierte und totalitäre) an Beispielen hinsichtlich der Rechte des ..."
                },
                {
                  "id": "faec0a5f-065f-5869-056e-a1e6b493e737",
                  "topicCode": "SII-KOMPETENZEN",
                  "words": 67,
                  "text": "U2.2: den Einfluss der Medien auf historische Prozesse im Spannungsfeld zwischen Aufklärung und Manipulation an einem Beispiel (etwa Buchdruck → Reformation,..."
                },
                {
                  "id": "f18aab2f-4a82-5523-de14-72e3be059e95",
                  "topicCode": "SII-KOMPETENZEN",
                  "words": 65,
                  "text": "O2.2: exemplarisch politischrechtliche und sozioökonomische Voraussetzungen, Merkmale und Folgen sozioökonomischen Wandels beschreiben (z. B. Wandel der Arbe..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche HH-Geschichte-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/upper-secondary/geschichte-gyo-2022-data.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.hamburg.de/resource/blob/123066/6075aa3887f36e7b3247e79fc267f776/geschichte-gyo-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete HH-Geschichte-Passagen sind vorhanden",
                    "passed": true,
                    "details": "29 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/upper-secondary/geschichte-gyo-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen HH-Geschichte-Positionen erzeugt",
                    "passed": true,
                    "details": "354 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "354 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median 179%. Kritisch gepruefte Abweichung: Kritisch geprueft: Hamburg Studienstufe enthaelt ein dichtes Modulraster mit 28 Kern-/Wahlmodulen; daher ist die Zahl der Source-Ziele im Vergleich zu kompakten Oberstufenplaenen hoeher, aber inhaltlich durch die amtliche Tabelle begruendet."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "354 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "354/354 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 354/354; Mappings: 354/354; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "cd727da0-8b83-528e-60e3-c1e88a6207dd",
            "title": "Geschichte Sekundarstufe I (Hamburg, Bildungsplan Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_GESCHICHTE_SEKI_BILDUNGSPLAN.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-GESCHICHTE-GYM-SEKI-BILDUNGSPLAN-2011",
                "title": "Bildungsplan Gymnasium Sekundarstufe I Geschichte Hamburg",
                "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/geschichte-gym-seki-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123446/e789e93fd921b603d73445348a8d0879/geschichte-gym-seki-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 134,
            "passages": 4,
            "mappedSourceGoals": 134,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 134,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Hamburg Sek I kombiniert 90 Mindestanforderungen mit kompakten verbindlichen Leitfragen. Die Zahl liegt plausibel unter Laendern mit feineren Inhaltsfeldtabellen und deutlich ueber reinen Legacy-Snapshots.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Hamburg Sek I kombiniert 90 Mindestanforderungen mit kompakten verbindlichen Leitfragen. Die Zahl liegt plausibel unter Laendern mit feineren Inhaltsfeldtabellen und deutlich ueber reinen Legacy-Snapshots."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.119402985074627,
              "p90Words": 25,
              "maxWords": 49,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "d711fb78-6284-5b29-388a-74af36dacbe0",
                  "topicCode": "SI-ANFORDERUNGEN",
                  "words": 49,
                  "text": "nennen für das 20. Jahrhundert politische Konstellationen, Ereignisse und Entwicklungen im Spannungsfeld zwischen freiheitlicher Demokratie und nationalsozia..."
                },
                {
                  "id": "ba3a6a57-b522-5027-2a79-21bc7e4dd718",
                  "topicCode": "SI-ANFORDERUNGEN",
                  "words": 48,
                  "text": "ordnen Schlüsselereignisse, herausragende Personen, typische Strukturen und Lebensformen in Epochen und Zeitabschnitte von der Steinzeit bis zum Anfang des 2..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche HH-Geschichte-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/lower-secondary/geschichte-gym-seki-data.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.hamburg.de/resource/blob/123446/e789e93fd921b603d73445348a8d0879/geschichte-gym-seki-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete HH-Geschichte-Passagen sind vorhanden",
                    "passed": true,
                    "details": "4 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/lower-secondary/geschichte-gym-seki-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen HH-Geschichte-Positionen erzeugt",
                    "passed": true,
                    "details": "134 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "134 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 61%. Kritisch gepruefte Abweichung: Kritisch geprueft: Hamburg Sek I kombiniert 90 Mindestanforderungen mit kompakten verbindlichen Leitfragen. Die Zahl liegt plausibel unter Laendern mit feineren Inhaltsfeldtabellen und deutlich ueber reinen Legacy-Snapshots."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "134 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "134/134 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 134/134; Mappings: 134/134; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "094e7b61-cbd5-56fa-e443-7e81d433cb03",
            "title": "Geschichte Orientierungsstufe 5/6 (Mecklenburg-Vorpommern, Rahmenplan 2025 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_GESCHICHTE_OS_RAHMENPLAN_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-GESCHICHTE-OS-5-6-2025",
                "title": "Rahmenplan Geschichte Orientierungsstufe 5/6 Mecklenburg-Vorpommern (2025)",
                "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/RP_Ges_5-6_OS_2025.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_Ges_5-6_OS_2025.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 57,
            "passages": 7,
            "mappedSourceGoals": 57,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 57,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: MV Sek I besteht aus einem aktuellen Orientierungsstufenplan 5/6 und einem Gymnasialplan 7-10. Die Source-Ziele folgen den amtlichen verbindlichen Inhalten und Lernziel-Zeilen; Beispiele und Hinweise werden nicht kuenstlich als Pflichtziele gezaehlt.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: MV Sek I besteht aus einem aktuellen Orientierungsstufenplan 5/6 und einem Gymnasialplan 7-10. Die Source-Ziele folgen den amtlichen verbindlichen Inhalten und Lernziel-Zeilen; Beispiele und Hinweise werden nicht kuenstlich als Pflichtziele gezaehlt."
            },
            "sourceGoalGranularity": {
              "averageWords": 3.7719298245614037,
              "p90Words": 8,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche MV-Geschichte-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/lower-secondary/RP_Ges_5-6_OS_2025.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_Ges_5-6_OS_2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete MV-Geschichte-Passagen sind vorhanden",
                    "passed": true,
                    "details": "7/7 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/lower-secondary/RP_Ges_5-6_OS_2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen MV-Geschichte-Positionen erzeugt",
                    "passed": true,
                    "details": "57 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "57 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median -31%. Kritisch gepruefte Abweichung: Kritisch geprueft: MV Sek I besteht aus einem aktuellen Orientierungsstufenplan 5/6 und einem Gymnasialplan 7-10. Die Source-Ziele folgen den amtlichen verbindlichen Inhalten und Lernziel-Zeilen; Beispiele und Hinweise werden nicht kuenstlich als Pflichtziele gezaehlt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "57 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "57/57 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 57/57; Mappings: 57/57; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "fee9f973-d8f5-5133-86f6-a8f30866de56",
            "title": "Geschichte Sekundarstufe I Gymnasium 7-10 (Mecklenburg-Vorpommern, Rahmenplan 2023 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_GESCHICHTE_SEKI_GYM_RAHMENPLAN_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-GESCHICHTE-GYM-7-10-2023",
                "title": "Rahmenplan Geschichte Gymnasium 7-10 Mecklenburg-Vorpommern (2023)",
                "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/rp_geschichte_sek_I_gym.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/rp_geschichte_sek_I_gym.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 62,
            "passages": 4,
            "mappedSourceGoals": 62,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 62,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: MV Sek I besteht aus einem aktuellen Orientierungsstufenplan 5/6 und einem Gymnasialplan 7-10. Die Source-Ziele folgen den amtlichen verbindlichen Inhalten und Lernziel-Zeilen; Beispiele und Hinweise werden nicht kuenstlich als Pflichtziele gezaehlt.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: MV Sek I besteht aus einem aktuellen Orientierungsstufenplan 5/6 und einem Gymnasialplan 7-10. Die Source-Ziele folgen den amtlichen verbindlichen Inhalten und Lernziel-Zeilen; Beispiele und Hinweise werden nicht kuenstlich als Pflichtziele gezaehlt."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.919354838709678,
              "p90Words": 16,
              "maxWords": 19,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche MV-Geschichte-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/lower-secondary/rp_geschichte_sek_I_gym.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/rp_geschichte_sek_I_gym.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete MV-Geschichte-Passagen sind vorhanden",
                    "passed": true,
                    "details": "4/4 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/lower-secondary/rp_geschichte_sek_I_gym.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen MV-Geschichte-Positionen erzeugt",
                    "passed": true,
                    "details": "62 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "62 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median -25%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "62 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "62/62 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 62/62; Mappings: 62/62; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8073216a-a15c-5e26-32a9-1fc8495ed521",
            "title": "Geschichte und Politische Bildung Qualifikationsphase (Mecklenburg-Vorpommern, Rahmenplan 2019 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/source-extraction/DE_MV_GESCHICHTE_SEKII_GEPO_RAHMENPLAN_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-GESCHICHTE-POLITISCHE-BILDUNG-SEKII-2019",
                "title": "Rahmenplan Geschichte und Politische Bildung Sekundarstufe II Mecklenburg-Vorpommern (2019)",
                "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/RP_GEPO_SEK2.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_GEPO_SEK2.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 97,
            "passages": 5,
            "mappedSourceGoals": 97,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 97,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Der MV-Sek-II-Rahmenplan ist modular und kompakter als HE, enthaelt aber verbindliche Inhalte, Standards und LK-Module. Die Source-Ziele stammen aus diesen amtlichen Pflichtpositionen, nicht aus einem Legacy-Snapshot.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Der MV-Sek-II-Rahmenplan ist modular und kompakter als HE, enthaelt aber verbindliche Inhalte, Standards und LK-Module. Die Source-Ziele stammen aus diesen amtlichen Pflichtpositionen, nicht aus einem Legacy-Snapshot."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.092783505154639,
              "p90Words": 13,
              "maxWords": 23,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche MV-Geschichte-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/upper-secondary/RP_GEPO_SEK2.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_GEPO_SEK2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete MV-Geschichte-Passagen sind vorhanden",
                    "passed": true,
                    "details": "5/5 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/upper-secondary/RP_GEPO_SEK2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen MV-Geschichte-Positionen erzeugt",
                    "passed": true,
                    "details": "97 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "97 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median -24%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "97 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "97/97 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 97/97; Mappings: 97/97; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "59d08b23-2482-56c7-1ab8-311320484128",
            "title": "Geschichte Oberstufe (Niedersachsen, KC 2017 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/source-extraction/DE_NI_GESCHICHTE_SEKII_KC2017.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-GESCHICHTE-SEK-II-KC-2017",
                "title": "Kerncurriculum Geschichte Sek II Niedersachsen (2017)",
                "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/KC-II-neu.pdf",
                "url": "https://cuvo.nibis.de/index.php?docid=1069&p=detail_view",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 253,
            "passages": 8,
            "mappedSourceGoals": 253,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 253,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Niedersachsen Geschichte Sek II ist durch viele Rahmenthemen und Wahlmodule breit. Gezaehlt werden Kompetenz- und Modul-Bullets, aber reine Tabellenmetadaten zu Perspektive, Dimension und Strukturierungsaspekt werden ausgeschlossen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Niedersachsen Geschichte Sek II ist durch viele Rahmenthemen und Wahlmodule breit. Gezaehlt werden Kompetenz- und Modul-Bullets, aber reine Tabellenmetadaten zu Perspektive, Dimension und Strukturierungsaspekt werden ausgeschlossen."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.964426877470355,
              "p90Words": 25,
              "maxWords": 99,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "2b59df9c-5929-55b5-efb7-834081ea61ae",
                  "topicCode": "SII-KOMP",
                  "words": 99,
                  "text": "verknüpfen Aussagen plausibel und komplex, indem sie kategoriale Zugriffe bei der Rekonstruktion und Dekonstruktion historischer Themen und Inhalte verwenden..."
                },
                {
                  "id": "d49ffc7a-8e70-5968-2bde-3b1818b7b10a",
                  "topicCode": "SII-KOMP",
                  "words": 62,
                  "text": "wenden bei der Erschließung relevanter Quellen und Darstellungen fachspezifische Verfahren und Formen historischer Untersuchung an: o äußere und innere Quell..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher NI-Geschichte-Kernlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/KC-II-neu.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://cuvo.nibis.de/index.php?docid=1069&p=detail_view"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete NI-Geschichte-Kompetenz- und Themenabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "8/8 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/KC-II-neu.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen NI-Geschichte-Kompetenzen und Fachwissen-Positionen erzeugt",
                    "passed": true,
                    "details": "253 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "253 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median 99%. Kritisch gepruefte Abweichung: Kritisch geprueft: Niedersachsen Geschichte Sek II ist durch viele Rahmenthemen und Wahlmodule breit. Gezaehlt werden Kompetenz- und Modul-Bullets, aber reine Tabellenmetadaten zu Perspektive, Dimension und Strukturierungsaspekt werden ausgeschlossen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "253 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "253/253 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 253/253; Mappings: 253/253; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "da71a9e7-4726-5aaa-c91b-d9f907a4d68d",
            "title": "Geschichte Sekundarstufe I (Niedersachsen, KC 2015 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/source-extraction/DE_NI_GESCHICHTE_SEKI_KC2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-GESCHICHTE-SEK-I-KC-2015",
                "title": "Kerncurriculum Geschichte Gymnasium Schuljahrgänge 5-10 Niedersachsen (2015)",
                "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/ge_gym_si_kc_druck.pdf",
                "url": "https://cuvo.nibis.de/index.php?docid=1773&p=detail_view",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 59,
            "passages": 4,
            "mappedSourceGoals": 59,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 59,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Niedersachsen Geschichte Sek I ist im KC deutlich kompakter als Laender mit feineren Inhaltsfeldtabellen. Gezaehlt werden Prozesskompetenzen und verbindliche Fachwissen-Zeilen; Begriffe/Daten werden nicht doppelt als separate Source-Ziele gezaehlt.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Niedersachsen Geschichte Sek I ist im KC deutlich kompakter als Laender mit feineren Inhaltsfeldtabellen. Gezaehlt werden Prozesskompetenzen und verbindliche Fachwissen-Zeilen; Begriffe/Daten werden nicht doppelt als separate Source-Ziele gezaehlt."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.05084745762712,
              "p90Words": 16,
              "maxWords": 30,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher NI-Geschichte-Kernlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/ge_gym_si_kc_druck.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://cuvo.nibis.de/index.php?docid=1773&p=detail_view"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete NI-Geschichte-Kompetenz- und Themenabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "4/4 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/ge_gym_si_kc_druck.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen NI-Geschichte-Kompetenzen und Fachwissen-Positionen erzeugt",
                    "passed": true,
                    "details": "59 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "59 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median -29%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "59 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "59/59 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 59/59; Mappings: 59/59; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2b9207eb-b01e-5336-418e-94cd1a91c700",
            "title": "Geschichte Oberstufe (Nordrhein-Westfalen, KLP GOSt 2013 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/source-extraction/DE_NW_GESCHICHTE_SEKII_KLP_GOST_2013.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-GESCHICHTE-SEK-II-KLP-GOST-2013",
                "title": "Kernlehrplan Geschichte gymnasiale Oberstufe Nordrhein-Westfalen (2013)",
                "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_geschichte.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/klp_gost_geschichte.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 223,
            "passages": 14,
            "mappedSourceGoals": 223,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 223,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: NRW Geschichte Sek II wird aus EF, Grundkurs und Leistungskurs extrahiert. Die hohe Zielzahl ist erwartbar, weil der KLP GK- und LK-Kompetenzerwartungen separat formuliert und diese nicht auf einen gemeinsamen Sammelsnapshot reduziert werden.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: NRW Geschichte Sek II wird aus EF, Grundkurs und Leistungskurs extrahiert. Die hohe Zielzahl ist erwartbar, weil der KLP GK- und LK-Kompetenzerwartungen separat formuliert und diese nicht auf einen gemeinsamen Sammelsnapshot reduziert werden."
            },
            "sourceGoalGranularity": {
              "averageWords": 16.206278026905828,
              "p90Words": 24,
              "maxWords": 37,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher NRW-Geschichte-Kernlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_geschichte.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://lehrplannavigator.nrw.de/system/files/media/document/file/klp_gost_geschichte.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete NRW-Geschichte-Kompetenzabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "14/14 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_geschichte.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen NRW-Geschichte-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "223 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "223 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median 76%. Kritisch gepruefte Abweichung: Kritisch geprueft: NRW Geschichte Sek II wird aus EF, Grundkurs und Leistungskurs extrahiert. Die hohe Zielzahl ist erwartbar, weil der KLP GK- und LK-Kompetenzerwartungen separat formuliert und diese nicht auf einen gemeinsamen Sammelsnapshot reduziert werden."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "223 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "223/223 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 223/223; Mappings: 223/223; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ac029e55-0353-5cf8-8022-f538314f6c5c",
            "title": "Geschichte Sekundarstufe I (Nordrhein-Westfalen, KLP 2019 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/source-extraction/DE_NW_GESCHICHTE_SEKI_KLP_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-GESCHICHTE-SEK-I-KLP-2019",
                "title": "Kernlehrplan Geschichte Sekundarstufe I Gymnasium Nordrhein-Westfalen (2019)",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_ge_klp_3407_2019_06_23.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_ge_klp_3407_2019_06_23.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 137,
            "passages": 13,
            "mappedSourceGoals": 137,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 137,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: NRW Geschichte Sek I wird aus den offiziellen Kompetenzbulletpoints der Erprobungsstufe und der Sek-I-Endstufe extrahiert. Die Zahl liegt hoeher als bei knapperen HE/BW-Altlehrplaenen, aber plausibel, weil NRW uebergeordnete und inhaltsfeldbezogene Kompetenzen getrennt ausweist.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: NRW Geschichte Sek I wird aus den offiziellen Kompetenzbulletpoints der Erprobungsstufe und der Sek-I-Endstufe extrahiert. Die Zahl liegt hoeher als bei knapperen HE/BW-Altlehrplaenen, aber plausibel, weil NRW uebergeordnete und inhaltsfeldbezogene Kompetenzen getrennt ausweist."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.788321167883211,
              "p90Words": 20,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher NRW-Geschichte-Kernlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_ge_klp_3407_2019_06_23.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_ge_klp_3407_2019_06_23.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete NRW-Geschichte-Kompetenzabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "13/13 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_ge_klp_3407_2019_06_23.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen NRW-Geschichte-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "137 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "137 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 65%. Kritisch gepruefte Abweichung: Kritisch geprueft: NRW Geschichte Sek I wird aus den offiziellen Kompetenzbulletpoints der Erprobungsstufe und der Sek-I-Endstufe extrahiert. Die Zahl liegt hoeher als bei knapperen HE/BW-Altlehrplaenen, aber plausibel, weil NRW uebergeordnete und inhaltsfeldbezogene Kompetenzen getrennt ausweist."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "137 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "137/137 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 137/137; Mappings: 137/137; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "074c2e45-39ce-5f28-c848-abaa88249d11",
            "title": "Geschichte Oberstufe (Rheinland-Pfalz, Lehrplan 2022 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/source-extraction/DE_RP_GESCHICHTE_SEKII_LEHRPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-GESCHICHTE-SEK-II-2022",
                "title": "Lehrplan fuer die gesellschaftswissenschaftlichen Faecher Sekundarstufe II Rheinland-Pfalz, Fachlehrplan Geschichte",
                "path": "curricula/DE/Gymnasium/input/RP/Gesellschaftswissenschaftliche_Faecher_SekII_2022.pdf",
                "url": "https://bildung.rlp.de/fileadmin/user_upload/studienseminar.rlp.de/gy-ko/Koblenz/Ausbildung/Geschichte/Links/Lehrplan_fuer_die_gesellschaftswissenschaftlichen_Faecher_Erdkunde_Geschichte_Sozialkunde_in_der_Sek._II__1_.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 132,
            "passages": 33,
            "mappedSourceGoals": 132,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 132,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: RP Geschichte Sek II wird aus 33 amtlichen Pflicht- und Wahlmodulen extrahiert. Die Zielzahl ist wegen der ausdifferenzierten MSS-Modulstruktur hoeher als bei knapperen Landeslehrplaenen, aber direkt aus den offiziellen Kompetenzrubriken belegt.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: RP Geschichte Sek II wird aus 33 amtlichen Pflicht- und Wahlmodulen extrahiert. Die Zielzahl ist wegen der ausdifferenzierten MSS-Modulstruktur hoeher als bei knapperen Landeslehrplaenen, aber direkt aus den offiziellen Kompetenzrubriken belegt."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.181818181818182,
              "p90Words": 19,
              "maxWords": 30,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher RP-Geschichte-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Gesellschaftswissenschaftliche_Faecher_SekII_2022.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://bildung.rlp.de/fileadmin/user_upload/studienseminar.rlp.de/gy-ko/Koblenz/Ausbildung/Geschichte/Links/Lehrplan_fuer_die_gesellschaftswissenschaftlichen_Faecher_Erdkunde_Geschichte_Sozialkunde_in_der_Sek._II__1_.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete RP-Geschichte-Lehrplanabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "33/33 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Gesellschaftswissenschaftliche_Faecher_SekII_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen RP-Geschichte-Kompetenzen erzeugt",
                    "passed": true,
                    "details": "132 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "132 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median 4%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "132 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "132/132 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 132/132; Mappings: 132/132; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4e70793e-63b7-5bde-6523-60226971101d",
            "title": "Geschichte Sekundarstufe I (Rheinland-Pfalz, Lehrplan 2021 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/source-extraction/DE_RP_GESCHICHTE_SEKI_LEHRPLAN_2021.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-GESCHICHTE-SEK-I-2021",
                "title": "Lehrplan gesellschaftswissenschaftliche Faecher Sekundarstufe I Rheinland-Pfalz, Fachlehrplan Geschichte",
                "path": "curricula/DE/Gymnasium/input/RP/Ek_G_Sk_Sek_I_LP_2021.pdf",
                "url": "https://bildung.rlp.de/fileadmin/user_upload/demokratie.bildung.rlp.de/Downloads/Ek_G_Sk_Sek_I__LP_2021_.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 126,
            "passages": 32,
            "mappedSourceGoals": 126,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 126,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: RP Geschichte Sek I wird aus 32 amtlichen Lernfeldern extrahiert. Die Zielzahl liegt plausibel nahe an den bereits geprueften Sek-I-plus-Sek-II-Laendern, weil RP viele vierteilige Kompetenzrubriken ausweist.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: RP Geschichte Sek I wird aus 32 amtlichen Lernfeldern extrahiert. Die Zielzahl liegt plausibel nahe an den bereits geprueften Sek-I-plus-Sek-II-Laendern, weil RP viele vierteilige Kompetenzrubriken ausweist."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.158730158730158,
              "p90Words": 21,
              "maxWords": 29,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher RP-Geschichte-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Ek_G_Sk_Sek_I_LP_2021.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://bildung.rlp.de/fileadmin/user_upload/demokratie.bildung.rlp.de/Downloads/Ek_G_Sk_Sek_I__LP_2021_.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete RP-Geschichte-Lehrplanabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "32/32 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Ek_G_Sk_Sek_I_LP_2021.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen RP-Geschichte-Kompetenzen erzeugt",
                    "passed": true,
                    "details": "126 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "126 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 52%. Kritisch gepruefte Abweichung: Kritisch geprueft: RP Geschichte Sek I wird aus 32 amtlichen Lernfeldern extrahiert. Die Zielzahl liegt plausibel nahe an den bereits geprueften Sek-I-plus-Sek-II-Laendern, weil RP viele vierteilige Kompetenzrubriken ausweist."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "126 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "126/126 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 126/126; Mappings: 126/126; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8f0de1e1-134c-55b7-b386-6d6548c6a521",
            "title": "Geschichte Sekundarstufe I (Schleswig-Holstein, Fachanforderungen 2016 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SH/lower-secondary/source-extraction/DE_SH_GESCHICHTE_SEKI_FACHANFORDERUNGEN_2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-GESCHICHTE-SEK-I-II-2016",
                "title": "Fachanforderungen Geschichte Sekundarstufe I / Sekundarstufe II Schleswig-Holstein (2016)",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Geschichte_SEK_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_Geschichte_SEK_barrierearm.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 87,
            "passages": 12,
            "mappedSourceGoals": 87,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 87,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: SH Geschichte Sek I kombiniert wenige verbindliche Halbjahresthemen mit expliziten Kompetenzstandards fuer den Uebergang in die Oberstufe. Die Zielzahl ist deshalb nicht aus kleinteiligen Inhaltsfeld-Kompetenzen, sondern aus Kompetenzen plus Themen-/Methodenitems aufgebaut.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: SH Geschichte Sek I kombiniert wenige verbindliche Halbjahresthemen mit expliziten Kompetenzstandards fuer den Uebergang in die Oberstufe. Die Zielzahl ist deshalb nicht aus kleinteiligen Inhaltsfeld-Kompetenzen, sondern aus Kompetenzen plus Themen-/Methodenitems aufgebaut."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.459770114942529,
              "p90Words": 14,
              "maxWords": 18,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-Geschichte-Fachanforderungen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Geschichte_SEK_barrierearm.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_Geschichte_SEK_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete SH-Geschichte-Kompetenz- und Themenabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "12/12 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Geschichte_SEK_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen SH-Geschichte-Anforderungen erzeugt",
                    "passed": true,
                    "details": "87 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "87 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 5%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "87 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "87/87 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 87/87; Mappings: 87/87; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "bf5f2ad2-53da-5a96-c150-ec5109069da9",
            "title": "Geschichte Sekundarstufe II (Schleswig-Holstein, Fachanforderungen 2016 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/upper-secondary/source-extraction/DE_SH_GESCHICHTE_SEKII_FACHANFORDERUNGEN_2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-GESCHICHTE-SEK-I-II-2016",
                "title": "Fachanforderungen Geschichte Sekundarstufe I / Sekundarstufe II Schleswig-Holstein (2016)",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Geschichte_SEK_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_Geschichte_SEK_barrierearm.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 110,
            "passages": 7,
            "mappedSourceGoals": 110,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 110,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: SH Geschichte Sek II ist knapper als NRW und RP, weil die Fachanforderungen sieben verbindliche E/Q-Themen ohne getrennte GK/LK-Kompetenzlisten ausweisen. Die Zielzahl folgt direkt aus den offiziellen Inhalts- und Problemfrage-Bullets.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: SH Geschichte Sek II ist knapper als NRW und RP, weil die Fachanforderungen sieben verbindliche E/Q-Themen ohne getrennte GK/LK-Kompetenzlisten ausweisen. Die Zielzahl folgt direkt aus den offiziellen Inhalts- und Problemfrage-Bullets."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.2272727272727275,
              "p90Words": 10,
              "maxWords": 22,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-Geschichte-Fachanforderungen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Geschichte_SEK_barrierearm.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_Geschichte_SEK_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete SH-Geschichte-Kompetenz- und Themenabschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "7/7 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Geschichte_SEK_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen SH-Geschichte-Anforderungen erzeugt",
                    "passed": true,
                    "details": "110 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "110 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median -13%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "110 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "110/110 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 110/110; Mappings: 110/110; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "944bedfb-d39b-5779-1706-42857721c04f",
            "title": "Geschichte Oberstufe (Saarland, GOS Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_GESCHICHTE_SEKII_GOS_2016_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-GESCHICHTE-GOS-EP-2016",
                "title": "Lehrplan Geschichte Einführungsphase der gymnasialen Oberstufe Saarland (2016)",
                "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/LP_Ge_EP_GOS_2016.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Geschichte/LP_Ge_EP_GOS_2016.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-GESCHICHTE-GOS-HP-GK-2019-2023",
                "title": "Lehrplan Geschichte Hauptphase Grundkurs Saarland (2023)",
                "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/LP_Ge_HP_GK_2019.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Geschichte/LP_Ge_HP_GK_2019.pdf?__blob=publicationFile&v=5",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-GESCHICHTE-GOS-HP-LK-2019",
                "title": "Lehrplan Geschichte Hauptphase Leistungskurs Saarland (2019)",
                "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/LP_Ge_HP_LK_2019.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Geschichte/LP_Ge_HP_LK_2019.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 179,
            "passages": 13,
            "mappedSourceGoals": 179,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 179,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Saarland Geschichte Sek II wird aus den offiziellen GOS-Dateien fuer Einfuehrungsphase, Hauptphase Grundkurs und Hauptphase Leistungskurs extrahiert. Die GK/LK-Ueberschneidungen werden nicht dedupliziert, weil sie kursbezogene Quellenbelege liefern.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Saarland Geschichte Sek II wird aus den offiziellen GOS-Dateien fuer Einfuehrungsphase, Hauptphase Grundkurs und Hauptphase Leistungskurs extrahiert. Die GK/LK-Ueberschneidungen werden nicht dedupliziert, weil sie kursbezogene Quellenbelege liefern."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.659217877094973,
              "p90Words": 27,
              "maxWords": 51,
              "longGoals": 4,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "06a717c3-71f6-5c5b-2191-e369b3559ab6",
                  "topicCode": "LK-POLITIK-GESELLSCHAFT-WIRTSCHAFT-GESCHICHTE-HAUPTPHASE-LK",
                  "words": 51,
                  "text": "ordnen den historischen Zeitabschnitt anhand folgender Daten ein [Orientierungskompetenz]:; 14.07.1789 Sturm auf die Bastille; 1792 bis 1815 Kriege Frankreic..."
                },
                {
                  "id": "0c39aea3-0d20-5265-c9ba-53dc7f04e6ea",
                  "topicCode": "LK-VARIABLER-PFLICHTBEREICH-MODUL-3-DAS-GETEILTE-DEUTSCHLAND-IN-DER-ZEIT-DES-KALTEN-KRIEGES",
                  "words": 50,
                  "text": "ordnen den historischen Zeitabschnitt anhand folgender Daten ein [Orientierungskompetenz]:; 1950er Jahre Westbindung und “Wirtschaftswunder” in der Bundesrep..."
                },
                {
                  "id": "88a76404-4e8d-5952-7217-98c112391779",
                  "topicCode": "LK-EXPANSION-UND-HERRSCHAFT-DAS-ROMISCHE-IMPERIUM",
                  "words": 48,
                  "text": "ordnen den historischen Zeitabschnitt anhand folgender Daten ein [Orientierungskompetenz]:; ca. 300 v. Chr. bis 400 n. Chr.: Rom als zentrale Macht des Mitte..."
                },
                {
                  "id": "9a19a6f4-081d-5b10-e356-d32b44bc8c21",
                  "topicCode": "EP-IM-19-UND-20-JAHRHUNDERT-GESCHICHTE-EINFUHRUNGSPHASE",
                  "words": 46,
                  "text": "ordnen den historischen Zeitabschnitt anhand folgender Daten ein [Orientierungskompetenz]:; 1798 Saardepartement; 1814 / 15 1. und 2. Pariser Frieden; 6.8.18..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Saarland-Geschichte-Quellen liegen lokal vor",
                    "passed": true,
                    "details": "3/3 PDF-Dateien."
                  },
                  {
                    "id": "source-document-urls-registered",
                    "label": "Originalquellen sind mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Geschichte/LP_Ge_EP_GOS_2016.pdf?__blob=publicationFile&v=4; https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Geschichte/LP_Ge_HP_GK_2019.pdf?__blob=publicationFile&v=5; https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Geschichte/LP_Ge_HP_LK_2019.pdf?__blob=publicationFile&v=4"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Saarland-Geschichte-Passagen sind aus amtlichen PDF-Themenfeldern extrahiert",
                    "passed": true,
                    "details": "13 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/upper-secondary/LP_Ge_EP_GOS_2016.pdf; curricula/DE/Gymnasium/input/SL/upper-secondary/LP_Ge_HP_GK_2019.pdf; curricula/DE/Gymnasium/input/SL/upper-secondary/LP_Ge_HP_LK_2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Saarland-Geschichte-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "179 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "179 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median 41%. Kritisch gepruefte Abweichung: Kritisch geprueft: Saarland Geschichte Sek II wird aus den offiziellen GOS-Dateien fuer Einfuehrungsphase, Hauptphase Grundkurs und Hauptphase Leistungskurs extrahiert. Die GK/LK-Ueberschneidungen werden nicht dedupliziert, weil sie kursbezogene Quellenbelege liefern."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "179 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "179/179 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 179/179; Mappings: 179/179; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "3e55049c-771e-5b8c-787b-d4ddb0343592",
            "title": "Geschichte Sekundarstufe I (Saarland, G9 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_GESCHICHTE_SEKI_GYM9_2023_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-GESCHICHTE-GYM9-6-2023",
                "title": "Lehrplan Geschichte Klassenstufe 6 neunjähriges Gymnasium Saarland (2023)",
                "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/LP_Ge_gym9_6_2023.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Geschichte/LP_Ge_gym9_6_2023.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-GESCHICHTE-GYM9-7-2023",
                "title": "Lehrplan Geschichte Klassenstufe 7 neunjähriges Gymnasium Saarland (2023)",
                "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/LP_Ge_gym9_7_2023.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Geschichte/LP_Ge_gym9_7_2023.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-GESCHICHTE-GYM9-9-2024",
                "title": "Lehrplan Geschichte Klassenstufe 9 neunjähriges Gymnasium Saarland (2024)",
                "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/LP_Ge_gym9_9_2024.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Geschichte/LP_Ge_gym9_9_2024.pdf?__blob=publicationFile&v=1",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-GESCHICHTE-GYM9-10-2024",
                "title": "Lehrplan Geschichte Klassenstufe 10 neunjähriges Gymnasium Saarland (2024)",
                "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/LP_Ge_gym9_10_2024.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Geschichte/LP_Ge_gym9_10_2024.pdf?__blob=publicationFile&v=1",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 197,
            "passages": 19,
            "mappedSourceGoals": 197,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 197,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Saarland Geschichte Sek I wird aus den aktuellen G9-Jahrgangslehrplaenen 6, 7, 9 und 10 extrahiert. Eine Klassenstufe 8-Geschichte-Datei ist auf der offiziellen Gymnasium-Seite nicht gelistet; daher wird kein kuenstliches Zielinventar ergaenzt.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Saarland Geschichte Sek I wird aus den aktuellen G9-Jahrgangslehrplaenen 6, 7, 9 und 10 extrahiert. Eine Klassenstufe 8-Geschichte-Datei ist auf der offiziellen Gymnasium-Seite nicht gelistet; daher wird kein kuenstliches Zielinventar ergaenzt."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.48223350253807,
              "p90Words": 24,
              "maxWords": 45,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Saarland-Geschichte-Quellen liegen lokal vor",
                    "passed": true,
                    "details": "4/4 PDF-Dateien."
                  },
                  {
                    "id": "source-document-urls-registered",
                    "label": "Originalquellen sind mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Geschichte/LP_Ge_gym9_6_2023.pdf?__blob=publicationFile&v=4; https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Geschichte/LP_Ge_gym9_7_2023.pdf?__blob=publicationFile&v=4; https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Geschichte/LP_Ge_gym9_9_2024.pdf?__blob=publicationFile&v=1; https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Geschichte/LP_Ge_gym9_10_2024.pdf?__blob=publicationFile&v=1"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Saarland-Geschichte-Passagen sind aus amtlichen PDF-Themenfeldern extrahiert",
                    "passed": true,
                    "details": "19 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/lower-secondary/LP_Ge_gym9_6_2023.pdf; curricula/DE/Gymnasium/input/SL/lower-secondary/LP_Ge_gym9_7_2023.pdf; curricula/DE/Gymnasium/input/SL/lower-secondary/LP_Ge_gym9_9_2024.pdf; curricula/DE/Gymnasium/input/SL/lower-secondary/LP_Ge_gym9_10_2024.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Saarland-Geschichte-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "197 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "197 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 137%. Kritisch gepruefte Abweichung: Kritisch geprueft: Saarland Geschichte Sek I wird aus den aktuellen G9-Jahrgangslehrplaenen 6, 7, 9 und 10 extrahiert. Eine Klassenstufe 8-Geschichte-Datei ist auf der offiziellen Gymnasium-Seite nicht gelistet; daher wird kein kuenstliches Zielinventar ergaenzt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "197 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "197/197 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 197/197; Mappings: 197/197; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8101ed83-6eee-5a8b-952e-59d127a6a35b",
            "title": "Geschichte Oberstufe (Sachsen, Lehrplan Gymnasium Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SN/upper-secondary/source-extraction/DE_SN_GESCHICHTE_SEKII_LEHRPLAN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-GESCHICHTE-GYM-2019-2024",
                "title": "Lehrplan Gymnasium Geschichte Sachsen 2004/2007/2009/2011/2019 (PDF-Fassung 2024)",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-geschichte-sachsen-2026.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/65/aCaTu4iKflh2vcW3XobR",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 116,
            "passages": 10,
            "mappedSourceGoals": 116,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 116,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Sachsen Geschichte Sek II wird aus den amtlichen Pflicht-Zielen und Pflicht-Lernbereichen fuer Grundkurs und Leistungskurs extrahiert. Wahlbereiche bleiben draussen; GK- und LK-Pflichtziele bleiben sichtbar, weil sie unterschiedliche Kursprofile belegen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Sachsen Geschichte Sek II wird aus den amtlichen Pflicht-Zielen und Pflicht-Lernbereichen fuer Grundkurs und Leistungskurs extrahiert. Wahlbereiche bleiben draussen; GK- und LK-Pflichtziele bleiben sichtbar, weil sie unterschiedliche Kursprofile belegen."
            },
            "sourceGoalGranularity": {
              "averageWords": 18.93103448275862,
              "p90Words": 30,
              "maxWords": 54,
              "longGoals": 4,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "8bef73ff-88f6-51a0-2d89-67539e2d5fd4",
                  "topicCode": "SN-GESCHICHTE-JAHRGANGSSTUFE-12-LEISTUNGSKURS-ZIELE-LK",
                  "words": 54,
                  "text": "Entwickeln der Fähigkeit, fachspezifische Arbeitsmethoden im Umgang mit Quellenarten und Darstellungsformen anzuwenden: die Potentiale von Archiven und Forsc..."
                },
                {
                  "id": "ad541d8b-e0e0-51ab-8b0d-80478770ce62",
                  "topicCode": "SN-GESCHICHTE-JAHRGANGSSTUFEN-11-12-GRUNDKURS-ZIELE-GK",
                  "words": 52,
                  "text": "Entwickeln der Fähigkeit, begründete Urteile über historische Sachverhalte und ihre Deutungen zu bilden: sie sich wirtschaftlichem und gesellschaftlichem Wan..."
                },
                {
                  "id": "c70f732d-9f80-5fcd-25a1-a52aad4aa9ac",
                  "topicCode": "SN-GESCHICHTE-JAHRGANGSSTUFEN-11-12-GRUNDKURS-ZIELE-GK",
                  "words": 49,
                  "text": "Entwickeln der Fähigkeit und Bereitschaft, humane und rationale Überzeugungen zu vertreten und die freiheitlich-demokratische Grundordnung mitzugestalten: se..."
                },
                {
                  "id": "c9e1d4f8-04c1-5622-8979-c39769260cd6",
                  "topicCode": "SN-GESCHICHTE-JAHRGANGSSTUFE-12-LEISTUNGSKURS-ZIELE-LK",
                  "words": 46,
                  "text": "Entwickeln eines Verständnisses für zeittypische Bedingungen und für Veränderungsprozesse auf der Grundlage historischen Wissens: Ursachen, Erscheinungsforme..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Sachsen-Geschichte-Gymnasium-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-geschichte-sachsen-2026.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.schulportal.sachsen.de/lplandb/lehrplan/65; https://www.schulportal.sachsen.de/lplandb/lehrplan/file/65/aCaTu4iKflh2vcW3XobR"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "SN-Geschichte-Pflicht-Ziele und Pflicht-Lernbereiche sind als Passagen vorhanden",
                    "passed": true,
                    "details": "10 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-geschichte-sachsen-2026.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen SN-Geschichte-Kompetenzen und verbindlichen Unterpunkten erzeugt",
                    "passed": true,
                    "details": "116 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-manual-review",
                    "label": "Source-Ziel-Anzahl wurde fachlich gegen den HE/BW-Korridor plausibilisiert",
                    "passed": true,
                    "details": "Kritisch geprueft: Sachsen Geschichte Sek II wird aus den amtlichen Pflicht-Zielen und Pflicht-Lernbereichen fuer Grundkurs und Leistungskurs extrahiert. Wahlbereiche bleiben draussen; GK- und LK-Pflichtziele bleiben sichtbar, weil sie unterschiedliche Kursprofile belegen."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "116 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median -9%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "116 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "116/116 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 116/116; Mappings: 116/116; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "d4b92baf-13a1-5197-e133-c2dbe5da34ce",
            "title": "Geschichte Sekundarstufe I (Sachsen, Lehrplan Gymnasium Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_GESCHICHTE_SEKI_LEHRPLAN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-GESCHICHTE-GYM-2019-2024",
                "title": "Lehrplan Gymnasium Geschichte Sachsen 2004/2007/2009/2011/2019 (PDF-Fassung 2024)",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-geschichte-sachsen-2026.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/65/aCaTu4iKflh2vcW3XobR",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 162,
            "passages": 29,
            "mappedSourceGoals": 162,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 162,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Sachsen Geschichte Sek I wird aus den amtlichen Pflicht-Zielen und Pflicht-Lernbereichen der Klassenstufen 5-10 extrahiert. Wahlbereiche und rechte Bemerkungsspalten werden bewusst ausgeschlossen; linke operatorbezogene Zeilen und verbindliche Unterpunkte werden als Source-Ziele gezaehlt.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Sachsen Geschichte Sek I wird aus den amtlichen Pflicht-Zielen und Pflicht-Lernbereichen der Klassenstufen 5-10 extrahiert. Wahlbereiche und rechte Bemerkungsspalten werden bewusst ausgeschlossen; linke operatorbezogene Zeilen und verbindliche Unterpunkte werden als Source-Ziele gezaehlt."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.654320987654321,
              "p90Words": 25,
              "maxWords": 48,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "7354194b-a7f9-5612-cddb-b41847d9cbf6",
                  "topicCode": "SN-GESCHICHTE-KLASSENSTUFE-8-ZIELE",
                  "words": 48,
                  "text": "Entwickeln der Fähigkeit und Bereitschaft, humane und rationale Überzeugungen zu vertreten und die freiheitlich-demokratische Grundordnung mitzugestalten: se..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Sachsen-Geschichte-Gymnasium-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-geschichte-sachsen-2026.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://www.schulportal.sachsen.de/lplandb/lehrplan/65; https://www.schulportal.sachsen.de/lplandb/lehrplan/file/65/aCaTu4iKflh2vcW3XobR"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "SN-Geschichte-Pflicht-Ziele und Pflicht-Lernbereiche sind als Passagen vorhanden",
                    "passed": true,
                    "details": "29 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-geschichte-sachsen-2026.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen SN-Geschichte-Kompetenzen und verbindlichen Unterpunkten erzeugt",
                    "passed": true,
                    "details": "162 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-manual-review",
                    "label": "Source-Ziel-Anzahl wurde fachlich gegen den HE/BW-Korridor plausibilisiert",
                    "passed": true,
                    "details": "Kritisch geprueft: Sachsen Geschichte Sek I wird aus den amtlichen Pflicht-Zielen und Pflicht-Lernbereichen der Klassenstufen 5-10 extrahiert. Wahlbereiche und rechte Bemerkungsspalten werden bewusst ausgeschlossen; linke operatorbezogene Zeilen und verbindliche Unterpunkte werden als Source-Ziele gezaehlt."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "162 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 95%. Kritisch gepruefte Abweichung: Kritisch geprueft: Sachsen Geschichte Sek I wird aus den amtlichen Pflicht-Zielen und Pflicht-Lernbereichen der Klassenstufen 5-10 extrahiert. Wahlbereiche und rechte Bemerkungsspalten werden bewusst ausgeschlossen; linke operatorbezogene Zeilen und verbindliche Unterpunkte werden als Source-Ziele gezaehlt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "162 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "162/162 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 162/162; Mappings: 162/162; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "627a0277-0b67-5dc2-5e46-038f7f3d9cc7",
            "title": "Geschichte Oberstufe (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/ST/upper-secondary/source-extraction/DE_ST_GESCHICHTE_SEKII_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-GESCHICHTE-GYM-2022",
                "title": "Fachlehrplan Geschichte Gymnasium Sachsen-Anhalt 01.08.2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Geschichte_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Geschichte_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 90,
            "passages": 11,
            "mappedSourceGoals": 90,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 90,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Sachsen-Anhalt Geschichte Sek II liegt im Korridor der geprueften HE/BW-Spuren. Extrahiert werden die Qualifikationsphasen-Kompetenzschwerpunkte mit Kompetenzbereichszeilen und grundlegenden Wissensbestaenden.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Sachsen-Anhalt Geschichte Sek II liegt im Korridor der geprueften HE/BW-Spuren. Extrahiert werden die Qualifikationsphasen-Kompetenzschwerpunkte mit Kompetenzbereichszeilen und grundlegenden Wissensbestaenden."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.655555555555555,
              "p90Words": 24,
              "maxWords": 44,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Sachsen-Anhalt-Geschichte-Fachlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Geschichte_Gym_01082022_swd.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://lisa.sachsen-anhalt.de/unterricht/lehrplaene; https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Geschichte_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "ST-Geschichte-Kompetenzschwerpunkte und Fachpraktika sind als Passagen vorhanden",
                    "passed": true,
                    "details": "11 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Geschichte_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen ST-Geschichte-Kompetenz- und Wissensbestandszeilen erzeugt",
                    "passed": true,
                    "details": "90 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-manual-review",
                    "label": "Source-Ziel-Anzahl wurde fachlich gegen den HE/BW-Korridor plausibilisiert",
                    "passed": true,
                    "details": "Kritisch geprueft: Sachsen-Anhalt Geschichte Sek II liegt im Korridor der geprueften HE/BW-Spuren. Extrahiert werden die Qualifikationsphasen-Kompetenzschwerpunkte mit Kompetenzbereichszeilen und grundlegenden Wissensbestaenden."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "90 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median -29%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "90 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "90/90 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 90/90; Mappings: 90/90; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "58c733fc-ad68-54cc-bc8e-97513aeaa1b4",
            "title": "Geschichte Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_GESCHICHTE_SEKI_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-GESCHICHTE-GYM-2022",
                "title": "Fachlehrplan Geschichte Gymnasium Sachsen-Anhalt 01.08.2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Geschichte_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Geschichte_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 234,
            "passages": 27,
            "mappedSourceGoals": 234,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 234,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Sachsen-Anhalt Geschichte Sek I ist gegenueber HE/BW deutlich feiner, weil der Fachlehrplan je Kompetenzschwerpunkt Interpretationskompetenz, narrative Kompetenz, geschichtskulturelle Kompetenz und grundlegende Wissensbestaende ausweist. Gezaehlt werden diese amtlichen Pflichtzeilen; Abstimmungs- und fächeruebergreifende Bezuege werden ausgeschlossen.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Sachsen-Anhalt Geschichte Sek I ist gegenueber HE/BW deutlich feiner, weil der Fachlehrplan je Kompetenzschwerpunkt Interpretationskompetenz, narrative Kompetenz, geschichtskulturelle Kompetenz und grundlegende Wissensbestaende ausweist. Gezaehlt werden diese amtlichen Pflichtzeilen; Abstimmungs- und fächeruebergreifende Bezuege werden ausgeschlossen."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.239316239316238,
              "p90Words": 24,
              "maxWords": 49,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "ad953688-13a1-572c-a186-1d8c0469334b",
                  "topicCode": "ST-GESCHICHTE-9-EINE-GESCHICHTSDOKUMENTATION-PRUFEN",
                  "words": 49,
                  "text": "Probleme bei der Prüfung von Geschichtsdokumentationen, z. B. Einsatz von Filmmaterial aus der Zeit des Nationalsozialismus (Propagandamaterial aus der Persp..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Sachsen-Anhalt-Geschichte-Fachlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Geschichte_Gym_01082022_swd.pdf"
                  },
                  {
                    "id": "source-document-url-registered",
                    "label": "Originalquelle ist mit URL dokumentiert",
                    "passed": true,
                    "details": "https://lisa.sachsen-anhalt.de/unterricht/lehrplaene; https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Geschichte_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "ST-Geschichte-Kompetenzschwerpunkte und Fachpraktika sind als Passagen vorhanden",
                    "passed": true,
                    "details": "27 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Geschichte_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen ST-Geschichte-Kompetenz- und Wissensbestandszeilen erzeugt",
                    "passed": true,
                    "details": "234 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-manual-review",
                    "label": "Source-Ziel-Anzahl wurde fachlich gegen den HE/BW-Korridor plausibilisiert",
                    "passed": true,
                    "details": "Kritisch geprueft: Sachsen-Anhalt Geschichte Sek I ist gegenueber HE/BW deutlich feiner, weil der Fachlehrplan je Kompetenzschwerpunkt Interpretationskompetenz, narrative Kompetenz, geschichtskulturelle Kompetenz und grundlegende Wissensbestaende ausweist. Gezaehlt werden diese amtlichen Pflichtzeilen; Abstimmungs- und fächeruebergreifende Bezuege werden ausgeschlossen."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "234 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 182%. Kritisch gepruefte Abweichung: Kritisch geprueft: Sachsen-Anhalt Geschichte Sek I ist gegenueber HE/BW deutlich feiner, weil der Fachlehrplan je Kompetenzschwerpunkt Interpretationskompetenz, narrative Kompetenz, geschichtskulturelle Kompetenz und grundlegende Wissensbestaende ausweist. Gezaehlt werden diese amtlichen Pflichtzeilen; Abstimmungs- und fächeruebergreifende Bezuege werden ausgeschlossen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "234 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "234/234 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 234/234; Mappings: 234/234; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4339d0d0-0cd2-52ea-c537-1dc45e102142",
            "title": "Geschichte Oberstufe (Thueringen, Lehrplan Gymnasium 2025 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Geschichte",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/TH/upper-secondary/source-extraction/DE_TH_GESCHICHTE_SEKII_LEHRPLAN_GYMNASIUM_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-GESCHICHTE-GYM-2025",
                "title": "Lehrplan Geschichte Gymnasium Thueringen, Entwurfsfassung 2025",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_Entwurfsfassung2025.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/65649?dateiname=LP_GY_Geschichte_Entwurfsfassung2025.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "TH-GESCHICHTE-GYM-2021",
                "title": "Lehrplan Geschichte Gymnasium Thueringen 2021",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_2021.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/15749?dateiname=LP_GY_Ge_Fassung_20210913.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 143,
            "passages": 23,
            "mappedSourceGoals": 143,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 143,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Thueringen Geschichte Sek II wird aus Einfuehrungsphase 11/11S und Qualifikationsphase 11/12 der amtlichen 2025er Entwurfsfassung extrahiert. 2021 ist als amtlicher Geltungskontext archiviert.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Thueringen Geschichte Sek II wird aus Einfuehrungsphase 11/11S und Qualifikationsphase 11/12 der amtlichen 2025er Entwurfsfassung extrahiert. 2021 ist als amtlicher Geltungskontext archiviert."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.51048951048951,
              "p90Words": 19,
              "maxWords": 27,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Thueringen-Geschichte-Lehrplan 2025 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_Entwurfsfassung2025.pdf"
                  },
                  {
                    "id": "bridge-source-document-present",
                    "label": "Amtlicher Thueringen-Geschichte-Lehrplan 2021 ist als Geltungskontext archiviert",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_2021.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "TH-Geschichte-Kompetenzbereiche und Lernbereiche sind als Passagen vorhanden",
                    "passed": true,
                    "details": "23 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_Entwurfsfassung2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen TH-Geschichte-Kompetenz- und Lernbereichszeilen erzeugt",
                    "passed": true,
                    "details": "143 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-manual-review",
                    "label": "Source-Ziel-Anzahl wurde fachlich gegen den HE/BW-Korridor plausibilisiert",
                    "passed": true,
                    "details": "Kritisch geprueft: Thueringen Geschichte Sek II wird aus Einfuehrungsphase 11/11S und Qualifikationsphase 11/12 der amtlichen 2025er Entwurfsfassung extrahiert. 2021 ist als amtlicher Geltungskontext archiviert."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "143 Source-Ziele; Vergleich HE/BW SEKII (72/182); Median 127; zulässiger 30%-Median-Korridor 89-165; Abweichung vom Median 13%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "143 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "143/143 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 143/143; Mappings: 143/143; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c09ea5cc-4186-52bd-655e-2ea64593e838",
            "title": "Geschichte Sekundarstufe I (Thueringen, Lehrplan Gymnasium 2025 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Geschichte",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_GESCHICHTE_SEKI_LEHRPLAN_GYMNASIUM_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-GESCHICHTE-GYM-2025",
                "title": "Lehrplan Geschichte Gymnasium Thueringen, Entwurfsfassung 2025",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_Entwurfsfassung2025.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/65649?dateiname=LP_GY_Geschichte_Entwurfsfassung2025.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "TH-GESCHICHTE-GYM-2021",
                "title": "Lehrplan Geschichte Gymnasium Thueringen 2021",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_2021.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/15749?dateiname=LP_GY_Ge_Fassung_20210913.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 182,
            "passages": 30,
            "mappedSourceGoals": 182,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 182,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Kritisch geprueft: Thueringen Geschichte Sek I wird aus der amtlichen 2025er Entwurfsfassung extrahiert. Die Zielzahl liegt im Korridor der bereits geprueften Laender; Kompetenzbereichsziele und Lernbereichsziele werden beide gezaehlt.",
              "status": "accepted",
              "rationale": "Kritisch geprueft: Thueringen Geschichte Sek I wird aus der amtlichen 2025er Entwurfsfassung extrahiert. Die Zielzahl liegt im Korridor der bereits geprueften Laender; Kompetenzbereichsziele und Lernbereichsziele werden beide gezaehlt."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.505494505494505,
              "p90Words": 18,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Thueringen-Geschichte-Lehrplan 2025 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_Entwurfsfassung2025.pdf"
                  },
                  {
                    "id": "bridge-source-document-present",
                    "label": "Amtlicher Thueringen-Geschichte-Lehrplan 2021 ist als Geltungskontext archiviert",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_2021.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "TH-Geschichte-Kompetenzbereiche und Lernbereiche sind als Passagen vorhanden",
                    "passed": true,
                    "details": "30 Passagegruppen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Geschichte_Entwurfsfassung2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen TH-Geschichte-Kompetenz- und Lernbereichszeilen erzeugt",
                    "passed": true,
                    "details": "182 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline-manual-review",
                    "label": "Source-Ziel-Anzahl wurde fachlich gegen den HE/BW-Korridor plausibilisiert",
                    "passed": true,
                    "details": "Kritisch geprueft: Thueringen Geschichte Sek I wird aus der amtlichen 2025er Entwurfsfassung extrahiert. Die Zielzahl liegt im Korridor der bereits geprueften Laender; Kompetenzbereichsziele und Lernbereichsziele werden beide gezaehlt."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "182 Source-Ziele; Vergleich HE/BW SEKI (88/78); Median 83; zulässiger 30%-Median-Korridor 59-107; Abweichung vom Median 119%. Kritisch gepruefte Abweichung: Kritisch geprueft: Thueringen Geschichte Sek I wird aus der amtlichen 2025er Entwurfsfassung extrahiert. Die Zielzahl liegt im Korridor der bereits geprueften Laender; Kompetenzbereichsziele und Lernbereichsziele werden beide gezaehlt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "182 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "182/182 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 182/182; Mappings: 182/182; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-history-crossstage",
          "label": "Sekundarstufe I/II",
          "selectedAtomicGoals": 156,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 156,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 156,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-104",
              "status": "pass",
              "summary": "Route endpoints are visible in all relevant composition views.",
              "metrics": {
                "relevantCompositionViews": 1,
                "requiredMotivationAnchors": 1,
                "requiredTerminalAutonomyGoals": 1,
                "viewsMissingMotivationAnchors": 0,
                "viewsMissingTerminalAutonomyGoals": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 1,
                "terminalAutonomyGoalsWithExamData": 1,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 217,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 4518,
            "sourceOriginalGoals": 4518,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 4518,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 4518,
            "sourceMappedToViewAtomicGoals": 4518,
            "sourceOriginalGoals": 4518,
            "sourceFullyCoveredOriginalGoals": 4518,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 62,
            "maxVisibleAtomicGoals": 156,
            "maxSourceBackedAtomicGoals": 156,
            "totalAtomicGoals": 156
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 182 upper-secondary source-to-canonical mapping edge(s), including 0 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 31,
            "sourceGoals": 2458,
            "sourceGoalsWithCourseLevel": 2458,
            "gkLkSourceGoals": 1895,
            "lkSourceGoals": 369,
            "unspecifiedSourceGoals": 118,
            "checkedMappingEdges": 182,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 0,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 31,
            "peerBaselineChecks": 27,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 1,
            "leafGoals": 156,
            "atomic": 156,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 56/156 ordinary atomic goals intentionally use memorization support, 57/57 primary cards are kept with origin traces, all 5 memory goals are traced, and 56 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 156,
            "noMemoryNeeded": 100,
            "memoryRequired": 56,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 57,
            "keptCards": 57,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 1,
            "visibilityCheckedMemoryRequiredGoals": 56,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 5,
            "tracedMemoryGoals": 5,
            "untracedMemoryGoals": 0,
            "deckIds": 5,
            "deckFiles": 5,
            "cardRows": 57
          },
          "details": [
            "canonical-history-full: audit report docs/qa-ci/status/memory-card-review-canonical-history-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "19 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 19
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 2137,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 2137",
            "diagnostic finding type APV-202: 2137"
          ]
        }
      ]
    },
    {
      "landscapeId": "70a2cb55-127b-5c6e-b518-4a1c9f4f77a0",
      "title": "Griechisch (Gymnasium, DE)",
      "subject": "Griechisch",
      "frameworkId": "canonical-gymnasium-greek",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_GRIECHISCH.de.json",
      "maturity": "M0",
      "goals": 198,
      "atomicGoals": 185,
      "clusterGoals": 13,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 170,
        "rawAtomicGoals": 185,
        "coveredJurisdictions": 2,
        "sourceBackedJurisdictions": 2,
        "sourceCompleteJurisdictions": 2,
        "cleanJurisdictions": 2,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 170,
        "maxSourceBackedAtomicGoals": 170,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 710,
        "sourceMappedToViewAtomicGoals": 710,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 710,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 710,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 710,
        "sourceFullyCoveredOriginalGoals": 710,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 198,
            "visibleAtomicGoals": 170,
            "visibleClusterGoals": 28,
            "viewAtomicGoals": 170,
            "sourceBackedAtomicGoals": 170,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 170,
            "sourceMappedToViewAtomicGoals": 170,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 170,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 170,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 170,
            "sourceFullyCoveredOriginalGoals": 170,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 198,
            "visibleAtomicGoals": 170,
            "visibleClusterGoals": 28,
            "viewAtomicGoals": 170,
            "sourceBackedAtomicGoals": 170,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 540,
            "sourceMappedToViewAtomicGoals": 540,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 540,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 540,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 540,
            "sourceFullyCoveredOriginalGoals": 540,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 2,
        "completeSources": 2,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "22703293-7307-5ad2-b158-efe6ae28c7c3",
            "title": "Griechisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Griechisch",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_GRIECHISCH_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Griechisch",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Griechisch.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/griechisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 540,
            "passages": 35,
            "mappedSourceGoals": 540,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 8,
            "partialMappings": 532,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 21.82962962962963,
              "p90Words": 35,
              "maxWords": 126,
              "longGoals": 9,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "32a76726-dfb2-51b0-9651-5c39589886dc",
                  "topicCode": "J8",
                  "words": 126,
                  "text": "erkennen und unterscheiden wesentliche Erscheinungen der Satzlehre, benennen sie mit Fachbegriffen, ordnen sie analog zum Lateinischen in ein Basissystem der..."
                },
                {
                  "id": "2be7d77e-ec50-530f-9263-eacdfeafb269",
                  "topicCode": "J9",
                  "words": 83,
                  "text": "erkennen und unterscheiden weitere Erscheinungen der Satzlehre, benennen sie mit Fachbegriffen, ordnen sie in ein differenzierteres grammatikalisches System ..."
                },
                {
                  "id": "28f6060d-f86b-5a95-9dbc-747116bcfa83",
                  "topicCode": "J9",
                  "words": 82,
                  "text": "übersetzen altersgemäße griechische Lehrbuchtexte u. a. aus folgenden Themenbereichen in angemessenes Deutsch: Topografie: Ionien, Magna Graecia, Ägäische In..."
                },
                {
                  "id": "8338b174-69de-576c-b386-78567900d380",
                  "topicCode": "J9",
                  "words": 73,
                  "text": "übersetzen weitere griechische Wortformen aus folgenden Bereichen: Adjektive (Steigerung), Adverbien (Bildung und Steigerung); Verben und ihre Nominalformen:..."
                },
                {
                  "id": "5ca4d390-ee8b-5791-9872-2ca797537131",
                  "topicCode": "J8",
                  "words": 66,
                  "text": "übersetzen altersgemäße griechische Lehrbuchtexte u. a. aus folgenden Themenbereichen in angemessenes Deutsch: Topografie: Kreta, Peloponnes, Mittelgriechenl..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Griechisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Griechisch.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Griechisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 35/35 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Griechisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "540 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "540/540 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 540/540; Mappings: 540/540; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c7209caa-18e5-4dd8-b68f-dd86e228d045",
            "title": "Griechisch Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Griechisch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_GRIECHISCH_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Griechisch Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_GRIECHISCH.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula/gymnasiale-oberstufe/griechisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 170,
            "passages": 8,
            "mappedSourceGoals": 170,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 170,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.58235294117647,
              "p90Words": 16,
              "maxWords": 18,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Griechisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_GRIECHISCH.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Griechisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 8/8 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Griechisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "170 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "170/170 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 170/170; Mappings: 170/170; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 198,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "warn",
          "summary": "2/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 2,
            "emptySourceJurisdictions": 14,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 710,
            "sourceOriginalGoals": 710,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 710,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "2/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 2,
            "sourceBackedJurisdictions": 2,
            "sourceCompleteJurisdictions": 2,
            "fullCoverageJurisdictions": 2,
            "uncoveredJurisdictions": 14,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 710,
            "sourceMappedToViewAtomicGoals": 710,
            "sourceOriginalGoals": 710,
            "sourceFullyCoveredOriginalGoals": 710,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 2,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 170,
            "maxSourceBackedAtomicGoals": 170,
            "totalAtomicGoals": 170
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 170 upper-secondary source-to-canonical mapping edge(s), including 0 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 2,
            "sourceGoals": 170,
            "sourceGoalsWithCourseLevel": 170,
            "gkLkSourceGoals": 143,
            "lkSourceGoals": 27,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 170,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 0,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 2,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "a0e13c56-c25f-4742-9272-3a1a603ee52e",
      "title": "Gymnasium (DE)",
      "subject": "Gymnasium (Deutschland)",
      "frameworkId": "canonical-gymnasium-overview",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_OVERVIEW.de.json",
      "maturity": "M0",
      "goals": 1,
      "atomicGoals": 0,
      "clusterGoals": 1,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 0,
        "rawAtomicGoals": 0,
        "coveredJurisdictions": 0,
        "sourceBackedJurisdictions": 0,
        "sourceCompleteJurisdictions": 0,
        "cleanJurisdictions": 0,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 0,
        "maxSourceBackedAtomicGoals": 0,
        "maxAtomicCoveragePercent": 0,
        "maxSourceBackedCoveragePercent": 0,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 0,
        "sourceMappedToViewAtomicGoals": 0,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 0,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 0,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 0,
        "sourceFullyCoveredOriginalGoals": 0,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1933,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1443,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1100,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1100,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1813,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1811,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1606,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1642,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1685,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 2029,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 2041,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 1941,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 2050,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 2047,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 1,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 1,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 2108,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 1,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "warn",
          "summary": "0/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 0,
            "emptySourceJurisdictions": 16,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-HE: no source inventory goals are registered or extracted",
            "DE-BY: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "0/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 0,
            "sourceBackedJurisdictions": 0,
            "sourceCompleteJurisdictions": 0,
            "fullCoverageJurisdictions": 0,
            "uncoveredJurisdictions": 16,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 0,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 0,
            "maxSourceBackedAtomicGoals": 0,
            "totalAtomicGoals": 0
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-HE: no source-backed atomic goals",
            "DE-BY: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "not_configured",
          "summary": "No persisted source-extraction mapping with GK/LK course-level metadata is configured for this curriculum."
        },
        {
          "id": "CQR-005",
          "status": "not_configured",
          "summary": "No source-extraction pipeline status is available for source-goal count plausibility."
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "3 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 3
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "7d51b38c-a149-5407-bddc-d2ce7878b020",
      "title": "Informatik (Gymnasium, DE)",
      "subject": "Informatik",
      "frameworkId": "canonical-gymnasium-informatics",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_INFORMATIK.de.json",
      "maturity": "M6",
      "goals": 282,
      "atomicGoals": 237,
      "clusterGoals": 45,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 209,
        "rawAtomicGoals": 237,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 207,
        "maxSourceBackedAtomicGoals": 207,
        "maxAtomicCoveragePercent": 99,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 3505,
        "sourceMappedToViewAtomicGoals": 3505,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 3505,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 3505,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 3505,
        "sourceFullyCoveredOriginalGoals": 3505,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 207,
            "visibleAtomicGoals": 71,
            "visibleClusterGoals": 136,
            "viewAtomicGoals": 71,
            "sourceBackedAtomicGoals": 71,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 228,
            "sourceMappedToViewAtomicGoals": 228,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 228,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 228,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 228,
            "sourceFullyCoveredOriginalGoals": 228,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 65,
            "atomicCoveragePercent": 34,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 282,
            "visibleAtomicGoals": 207,
            "visibleClusterGoals": 75,
            "viewAtomicGoals": 207,
            "sourceBackedAtomicGoals": 207,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 155,
            "sourceMappedToViewAtomicGoals": 155,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 155,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 155,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 155,
            "sourceFullyCoveredOriginalGoals": 155,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 99,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 282,
            "visibleAtomicGoals": 207,
            "visibleClusterGoals": 75,
            "viewAtomicGoals": 207,
            "sourceBackedAtomicGoals": 207,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 224,
            "sourceMappedToViewAtomicGoals": 224,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 224,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 224,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 224,
            "sourceFullyCoveredOriginalGoals": 224,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 184,
            "atomicCoveragePercent": 99,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 232,
            "visibleAtomicGoals": 64,
            "visibleClusterGoals": 168,
            "viewAtomicGoals": 64,
            "sourceBackedAtomicGoals": 64,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 187,
            "sourceMappedToViewAtomicGoals": 187,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 187,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 187,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 187,
            "sourceFullyCoveredOriginalGoals": 187,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 45,
            "atomicCoveragePercent": 30.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 232,
            "visibleAtomicGoals": 64,
            "visibleClusterGoals": 168,
            "viewAtomicGoals": 64,
            "sourceBackedAtomicGoals": 64,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 187,
            "sourceMappedToViewAtomicGoals": 187,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 187,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 187,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 187,
            "sourceFullyCoveredOriginalGoals": 187,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 45,
            "atomicCoveragePercent": 30.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 226,
            "visibleAtomicGoals": 70,
            "visibleClusterGoals": 156,
            "viewAtomicGoals": 70,
            "sourceBackedAtomicGoals": 70,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 265,
            "sourceMappedToViewAtomicGoals": 265,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 265,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 265,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 265,
            "sourceFullyCoveredOriginalGoals": 265,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 62,
            "atomicCoveragePercent": 33.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 225,
            "visibleAtomicGoals": 79,
            "visibleClusterGoals": 146,
            "viewAtomicGoals": 79,
            "sourceBackedAtomicGoals": 79,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 289,
            "sourceMappedToViewAtomicGoals": 289,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 289,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 289,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 289,
            "sourceFullyCoveredOriginalGoals": 289,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 75,
            "atomicCoveragePercent": 37.8,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 235,
            "visibleAtomicGoals": 109,
            "visibleClusterGoals": 126,
            "viewAtomicGoals": 109,
            "sourceBackedAtomicGoals": 109,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 219,
            "sourceMappedToViewAtomicGoals": 219,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 219,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 219,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 219,
            "sourceFullyCoveredOriginalGoals": 219,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 94,
            "atomicCoveragePercent": 52.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 232,
            "visibleAtomicGoals": 88,
            "visibleClusterGoals": 144,
            "viewAtomicGoals": 88,
            "sourceBackedAtomicGoals": 88,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 60,
            "sourceMappedToViewAtomicGoals": 60,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 60,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 60,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 60,
            "sourceFullyCoveredOriginalGoals": 60,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 81,
            "atomicCoveragePercent": 42.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 186,
            "visibleAtomicGoals": 70,
            "visibleClusterGoals": 116,
            "viewAtomicGoals": 70,
            "sourceBackedAtomicGoals": 70,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 269,
            "sourceMappedToViewAtomicGoals": 269,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 269,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 269,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 269,
            "sourceFullyCoveredOriginalGoals": 269,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 69,
            "atomicCoveragePercent": 33.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 235,
            "visibleAtomicGoals": 132,
            "visibleClusterGoals": 103,
            "viewAtomicGoals": 132,
            "sourceBackedAtomicGoals": 132,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 276,
            "sourceMappedToViewAtomicGoals": 276,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 276,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 276,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 276,
            "sourceFullyCoveredOriginalGoals": 276,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 80,
            "atomicCoveragePercent": 63.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 231,
            "visibleAtomicGoals": 90,
            "visibleClusterGoals": 141,
            "viewAtomicGoals": 90,
            "sourceBackedAtomicGoals": 90,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 221,
            "sourceMappedToViewAtomicGoals": 221,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 221,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 221,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 221,
            "sourceFullyCoveredOriginalGoals": 221,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 68,
            "atomicCoveragePercent": 43.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 238,
            "visibleAtomicGoals": 92,
            "visibleClusterGoals": 146,
            "viewAtomicGoals": 92,
            "sourceBackedAtomicGoals": 92,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 220,
            "sourceMappedToViewAtomicGoals": 220,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 220,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 220,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 220,
            "sourceFullyCoveredOriginalGoals": 220,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 40,
            "atomicCoveragePercent": 44,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 242,
            "visibleAtomicGoals": 115,
            "visibleClusterGoals": 127,
            "viewAtomicGoals": 115,
            "sourceBackedAtomicGoals": 115,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 335,
            "sourceMappedToViewAtomicGoals": 335,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 335,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 335,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 335,
            "sourceFullyCoveredOriginalGoals": 335,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 114,
            "atomicCoveragePercent": 55,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 227,
            "visibleAtomicGoals": 68,
            "visibleClusterGoals": 159,
            "viewAtomicGoals": 68,
            "sourceBackedAtomicGoals": 68,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 173,
            "sourceMappedToViewAtomicGoals": 173,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 173,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 173,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 173,
            "sourceFullyCoveredOriginalGoals": 173,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 47,
            "atomicCoveragePercent": 32.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 229,
            "visibleAtomicGoals": 82,
            "visibleClusterGoals": 147,
            "viewAtomicGoals": 82,
            "sourceBackedAtomicGoals": 82,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 197,
            "sourceMappedToViewAtomicGoals": 197,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 197,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 197,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 197,
            "sourceFullyCoveredOriginalGoals": 197,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 63,
            "atomicCoveragePercent": 39.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 29,
        "completeSources": 29,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 4,
        "totalSteps": 4,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "8719ac02-e7f2-563a-957f-67e8508bd4c0",
            "title": "Informatik Oberstufe (Brandenburg, GOST RLP 2022 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/source-extraction/DE_BB_INFORMATIK_SEKII_RLP2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-GOST-RLP-INF-2022",
                "title": "Rahmenlehrplan fuer die gymnasiale Oberstufe Brandenburg, Teil C Informatik 2022",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Informatik.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2022_Informatik.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 139,
            "passages": 23,
            "mappedSourceGoals": 139,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 38,
            "partialMappings": 101,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "BB Sek II Informatik nutzt einen stark verdichteten RLP-Standardstil; die Granularisierung auf Standards plus Themenfelder ergibt eine plausible Zielzahl im Korridor der bereits bearbeiteten Oberstufenquellen."
            },
            "sourceGoalGranularity": {
              "averageWords": 4.9496402877697845,
              "p90Words": 8,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present",
                    "label": "Amtliche BB-Informatik-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Informatik.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BB-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "23/23 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Informatik.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BB-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "139 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "139 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -15%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "139 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b027d203-b8b3-53a2-af63-f6c9fe2a054c",
            "title": "Informatik Sekundarstufe I (Brandenburg, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/source-extraction/DE_BB_INFORMATIK_SEKI_RLP2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-RLP-1-10-INF-2015",
                "title": "Rahmenlehrplan Berlin-Brandenburg, Teil C Informatik, Wahlpflichtfach Jahrgangsstufen 7-10",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Informatik_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Informatik_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 48,
            "passages": 10,
            "mappedSourceGoals": 48,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 24,
            "partialMappings": 24,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "BB Sek I Informatik ist als Wahlpflichtfach 7-10 kompakt formuliert; 48 granulare Source-Ziele liegen nahe bei BW Sek I (57)."
            },
            "sourceGoalGranularity": {
              "averageWords": 4.583333333333333,
              "p90Words": 7,
              "maxWords": 9,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present",
                    "label": "Amtliche BB-Informatik-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Informatik_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BB-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "10/10 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Informatik_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BB-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "48 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "48 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median -16%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "48 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "87dee573-ed23-54e1-9ab4-774c8cf9f56a",
            "title": "Informatik Oberstufe (Berlin, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/source-extraction/DE_BE_INFORMATIK_SEKII_RLP2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-GOST-RLP-INF-2022",
                "title": "Rahmenlehrplan Berlin-Brandenburg Gymnasiale Oberstufe Teil C Informatik 2022",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Informatik.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2022_Informatik.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 139,
            "passages": 23,
            "mappedSourceGoals": 139,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 38,
            "partialMappings": 101,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Berlin nutzt den gemeinsamen Berlin-Brandenburg-RLP fuer die gymnasiale Oberstufe Teil C Informatik 2022; die 139 granularen Source-Ziele entsprechen der kritisch geprueften BB-Sek-II-Extraction."
            },
            "sourceGoalGranularity": {
              "averageWords": 4.9496402877697845,
              "p90Words": 8,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present",
                    "label": "Amtliche BB-Informatik-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Informatik.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BB-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "23/23 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Informatik.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BB-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "139 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "139 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -15%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "139 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "416cbe4a-6235-54ea-849a-b137825f6dd8",
            "title": "Informatik Sekundarstufe I (Berlin, gemeinsamer BE/BB-Rahmenlehrplan 2015 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/source-extraction/DE_BE_INFORMATIK_SEKI_RLP2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-BB-RLP-1-10-INF-2015",
                "title": "Rahmenlehrplan Berlin-Brandenburg, Teil C Informatik, Wahlpflichtfach Jahrgangsstufen 7-10",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Informatik_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Informatik_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 48,
            "passages": 10,
            "mappedSourceGoals": 48,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 24,
            "partialMappings": 24,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Berlin nutzt den gemeinsamen Berlin-Brandenburg-RLP Teil C Informatik Wahlpflichtfach 7-10; die 48 granularen Source-Ziele entsprechen der kritisch geprueften BB-Sek-I-Extraction."
            },
            "sourceGoalGranularity": {
              "averageWords": 4.583333333333333,
              "p90Words": 7,
              "maxWords": 9,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present",
                    "label": "Amtliche BB-Informatik-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Informatik_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BB-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "10/10 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Informatik_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BB-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "48 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "48 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median -16%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "48 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "6b3892ff-049c-5831-a0fe-0bd581981f54",
            "title": "Informatik Kursstufe (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_INFORMATIK_SEKII_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-INF",
                "title": "Bildungsplan 2016 Gymnasium Baden-Wuerttemberg, Informatik Schulversuch",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF.pdf",
                "url": "https://www.bildungsplaene-bw.de/,Lde/Startseite/BP2016BW_ALLG_GYM_INF",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 171,
            "passages": 20,
            "mappedSourceGoals": 171,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 7,
            "partialMappings": 164,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "BW Sek II Informatik enthaelt Basisfach- und Leistungsfach-Erwartungen. Die deutliche Zielzahl gegenueber HE ist plausibel, weil die BW-Schulversuchsfassung viele einzelne Kompetenznummern ausweist."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.08187134502924,
              "p90Words": 21,
              "maxWords": 32,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present",
                    "label": "Amtliche BW-Informatik-PDFs liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BW-Informatik-Kompetenzbereiche sind als Passagen vorhanden",
                    "passed": true,
                    "details": "20/20 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Informatik-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "171 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "171 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b0e8d6ed-bf5d-5479-a58f-688bd62f2f13",
            "title": "Informatik Sekundarstufe I (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_INFORMATIK_SEKI_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-INF7",
                "title": "Bildungsplan 2016 Gymnasium Baden-Wuerttemberg, Aufbaukurs Informatik Klasse 7",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF7.pdf",
                "url": "https://www.bildungsplaene-bw.de/%2CLde/BP2016BW_ALLG_GYM_INF7",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BP2016-INF",
                "title": "Bildungsplan 2016 Gymnasium Baden-Wuerttemberg, Informatik Schulversuch",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF.pdf",
                "url": "https://www.bildungsplaene-bw.de/,Lde/Startseite/BP2016BW_ALLG_GYM_INF",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 57,
            "passages": 8,
            "mappedSourceGoals": 57,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 56,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "BW Sek I Informatik kombiniert Aufbaukurs Klasse 7 und Brueckenkurs Klassen 9/10. Die Zielzahl ist niedriger als bei Vollfach-Pflichtcurricula, aber plausibel fuer ein fachlich begrenztes Informatikangebot."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.035087719298245,
              "p90Words": 21,
              "maxWords": 33,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present",
                    "label": "Amtliche BW-Informatik-PDFs liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF7.pdf; curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete BW-Informatik-Kompetenzbereiche sind als Passagen vorhanden",
                    "passed": true,
                    "details": "8/8 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF7.pdf; curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_INF.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Informatik-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "57 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "57 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "1af3eba8-749f-5359-8f12-18f87b13616c",
            "title": "Informatik (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Informatik",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_INFORMATIK_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Informatik",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Informatik.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/informatik",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 224,
            "passages": 49,
            "mappedSourceGoals": 224,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 65,
            "partialMappings": 159,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; source-goal count matches the registered source-goal membership inventory.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; source-goal count matches the registered source-goal membership inventory."
            },
            "sourceGoalGranularity": {
              "averageWords": 20.758928571428573,
              "p90Words": 35,
              "maxWords": 63,
              "longGoals": 5,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "dde3ec8d-9c6e-5e72-bf6c-f5dadb42769c",
                  "topicCode": "Inf9-Lernbereich-4",
                  "words": 63,
                  "text": "nutzen das Internet verantwortungsvoll unter Berücksichtigung ihrer Kenntnisse über Möglichkeiten und Risiken dieses Mediums und reflektieren dabei, wodurch ..."
                },
                {
                  "id": "6617bb0c-a0fe-56c3-a0f9-6e02862c2e0b",
                  "topicCode": "Inf12-Lernbereich-7",
                  "words": 52,
                  "text": "führen ein Softwareprojekt zu einer Aufgabenstellung aus der Praxis (z. B. Inventarverwaltung, einfaches Spiel, Kursverwaltung als Webanwendung) gemäß einem ..."
                },
                {
                  "id": "dac949c3-40e8-52c8-87e4-9aedf1e3e680",
                  "topicCode": "Inf13-Lernbereich-4",
                  "words": 51,
                  "text": "entwerfen Algorithmen zur Lösung von Problemen und implementieren ausgewählte Beispiele. Dazu wenden sie geeignete Strategien an, wählen passende Datenstrukt..."
                },
                {
                  "id": "7162781b-f685-549f-ab58-53af0ee5a13b",
                  "topicCode": "Inf12-Lernbereich-4",
                  "words": 46,
                  "text": "erläutern, wie n-stellige logische Funktionen durch disjunktive Normalformen dargestellt werden können; für einfache Beispiele (u. a. Halbaddierer, Volladdie..."
                },
                {
                  "id": "860c328a-f20f-5fb0-bf77-20ba53167aae",
                  "topicCode": "Inf12-Lernbereich-5",
                  "words": 46,
                  "text": "modellieren anhand einfacher Beispiele die Nutzung gemeinsamer Ressourcen in einem Betriebsmittelzuteilungsgraph (z. B. Verwaltung von Druckaufträgen, Verkeh..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Informatik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Informatik.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Informatik-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 49/49 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "224 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "224 Source-Ziele; Vergleich HE/BW SEKI (57) + SEKII (171/155); Median 220; zulässiger 30%-Median-Korridor 154-286; Abweichung vom Median 2%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "224/224 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 224/224; Mappings: 224/224; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f3bf5085-e927-5024-aa28-41f18c598ae3",
            "title": "Informatik Gymnasiale Oberstufe (Bremen, Bildungsplan 2009 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HB/upper-secondary/source-extraction/DE_HB_INFORMATIK_GYO_2009.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-HB-INFORMATIK-GYO-2009",
                "title": "Bildungsplan Gymnasiale Oberstufe Informatik Bremen 2009",
                "path": "curricula/DE/Gymnasium/input/HB/GyO_Informatik_2009.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/GyO_Informatik_2009.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 60,
            "passages": 9,
            "mappedSourceGoals": 60,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 8,
            "partialMappings": 52,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-HB GyO-Informatik nutzt 60 Source-Ziele aus einer aelteren, stark gebuendelten amtlichen Quelle; die niedrigere Granularitaet ist quellenbedingt und wird nicht durch eine Sek-I-Entwurfsfassung aufgefuellt."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.816666666666666,
              "p90Words": 12,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-hb-informatik-sekii",
                    "label": "Amtlicher Bremer GyO-Informatik-Bildungsplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/GyO_Informatik_2009.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-hb-informatik-sekii",
                    "label": "GyO-Themenbereiche und Standards als Originalpassagen extrahiert",
                    "passed": true,
                    "details": "9 Passagen aus Themen/Inhalten, Standards und fachmethodischen Kompetenzen."
                  },
                  {
                    "id": "source-extraction-official-pdf-hb-informatik-sekii",
                    "label": "Source-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/GyO_Informatik_2009.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-hb-informatik-sekii",
                    "label": "Source-Ziele aus offiziellen Themen- und Standardformulierungen erzeugt",
                    "passed": true,
                    "details": "60 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-hb-informatik-sekii",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "seki-source-not-promoted-hb-informatik",
                    "label": "Sek-I-Entwurf wird nicht als abgeschlossene Originalquelle gewertet",
                    "passed": true,
                    "details": "Die verfuegbare Bremer Sek-I-Informatik-Datei ist eine Erprobungs-/Entwurfsfassung 2025; sie bleibt ausserhalb dieser abgeschlossenen GyO-Lane."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "60 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -63%. Kritisch gepruefte Abweichung: DE-HB GyO-Informatik nutzt 60 Source-Ziele aus einer aelteren, stark gebuendelten amtlichen Quelle; die niedrigere Granularitaet ist quellenbedingt und wird nicht durch eine Sek-I-Entwurfsfassung aufgefuellt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "review-file-generated-hb-informatik-sekii",
                    "label": "M3-Review-Datei wird generiert",
                    "passed": true,
                    "details": "Alle GyO-Source-Ziele erhalten eine fachliche Review-Entscheidung."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c1a02ddd-736d-4975-920b-18b03aff147f",
            "title": "Informatik Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_INFORMATIK_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Informatik Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_INFORMATIK.de.json.snapshot",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-informatik.pdf",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 155,
            "passages": 35,
            "mappedSourceGoals": 155,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 155,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; source-goal count matches the registered source-goal membership inventory.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; source-goal count matches the registered source-goal membership inventory."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.109677419354838,
              "p90Words": 13,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Informatik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_INFORMATIK.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Informatik-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 35/35 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "155 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "155/155 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 155/155; Mappings: 155/155; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f743d4ed-e879-50c7-966e-484c66368f76",
            "title": "Informatik Sekundarstufe I (Hamburg, Bildungsplan Gymnasium Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_INFORMATIK_SEKI_BILDUNGSPLAN.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-INFORMATIK-GYM-SEKI",
                "title": "Bildungsplan Gymnasium Sekundarstufe I Informatik Wahlpflichtfach Hamburg",
                "path": "curricula/DE/Gymnasium/input/HH/informatik-gym-seki-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123456/3cdb416176a9efa4644942083736bab8/informatik-gym-seki-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 133,
            "passages": 6,
            "mappedSourceGoals": 133,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 133,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-HH SekI nutzt 133 kleinteilige Source-Ziele und liegt damit im Korridor der geprueften Informatik-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.586466165413533,
              "p90Words": 14,
              "maxWords": 20,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-present-hh-informatik-seki",
                    "label": "Amtliche HH-Informatik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/informatik-gym-seki-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "hh-informatik-seki-passages",
                    "label": "Verbindliche Anforderungs-/Inhaltsbereiche wurden extrahiert",
                    "passed": true,
                    "details": "6 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "hh-informatik-seki-source-goals",
                    "label": "Source-Ziele aus offiziellen Lehrplan-Bullets erzeugt",
                    "passed": true,
                    "details": "133 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "133 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 133%. Kritisch gepruefte Abweichung: DE-HH SekI nutzt 133 kleinteilige Source-Ziele und liegt damit im Korridor der geprueften Informatik-Laender."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "hh-informatik-seki-review-complete",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "133/133 Source-Ziele reviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8be9852a-3f8b-5bf1-848f-abd2d59c0570",
            "title": "Informatik Studienstufe (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/source-extraction/DE_HH_INFORMATIK_SEKII_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-INFORMATIK-GYO-2022",
                "title": "Bildungsplan Studienstufe Informatik Hamburg 2022",
                "path": "curricula/DE/Gymnasium/input/HH/informatik-gyo-2022.pdf",
                "url": "https://www.hamburg.de/contentblob/16762768/154d25efc0dc8b08d1bd0e3a6df54392/data/informatik-gyo-2022.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 136,
            "passages": 9,
            "mappedSourceGoals": 136,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 10,
            "partialMappings": 126,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-HH SekII nutzt 136 kleinteilige Source-Ziele und liegt damit im Korridor der geprueften Informatik-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.198529411764707,
              "p90Words": 21,
              "maxWords": 76,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-hh-informatik-sekii-bp2022-prozesskompetenzen-012-identifizieren-automatisierbare-sachverhalte-der-identifizieren-automati-6d5a9bc3",
                  "topicCode": "HH-INF-SEKII-P-12",
                  "words": 76,
                  "text": "identifizieren automatisierbare Sachverhalte der • identifizieren automatisierbare Sachverhalte der realen realen Welt und modellieren sie mit mindestens Wel..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-present-hh-informatik-sekii",
                    "label": "Amtliche HH-Informatik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/informatik-gyo-2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "hh-informatik-sekii-passages",
                    "label": "Verbindliche Anforderungs-/Inhaltsbereiche wurden extrahiert",
                    "passed": true,
                    "details": "9 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "hh-informatik-sekii-source-goals",
                    "label": "Source-Ziele aus offiziellen Lehrplan-Bullets erzeugt",
                    "passed": true,
                    "details": "136 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "136 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -17%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "hh-informatik-sekii-review-complete",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "136/136 Source-Ziele reviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "5cbaaf5c-6f1a-580d-9401-6c9d69d9bc55",
            "title": "Informatik Qualifikationsphase (Mecklenburg-Vorpommern, Rahmenplan 2019 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/source-extraction/DE_MV_INFORMATIK_SEKII_RAHMENPLAN_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-MV-INFORMATIK-SEKII-RP-2019",
                "title": "Rahmenplan Informatik fuer die Qualifikationsphase der gymnasialen Oberstufe Mecklenburg-Vorpommern 2019",
                "path": "curricula/DE/Gymnasium/input/MV/RP_INFO_SEK2.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_INFO_SEK2.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 140,
            "passages": 17,
            "mappedSourceGoals": 140,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 71,
            "partialMappings": 69,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "MV Sek II nutzt einen aktuellen, tabellarisch sehr konkreten Rahmenplan mit getrennten GK/LK-Erweiterungen; die Zielzahl liegt im Korridor der bereits geprueften Informatik-Oberstufenquellen."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.978571428571429,
              "p90Words": 12,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "de-mv-informatik-sekii-2019-official-source-present",
                    "label": "Amtliche MV-Informatik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/RP_INFO_SEK2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "de-mv-informatik-sekii-2019-passages-extracted",
                    "label": "Original-Lehrplanpassagen als Passagen extrahiert",
                    "passed": true,
                    "details": "17 Passagen aus verbindlichen Ziele-und-Inhalte-Abschnitten."
                  },
                  {
                    "id": "de-mv-informatik-sekii-2019-official-pdf-not-legacy",
                    "label": "Source-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/RP_INFO_SEK2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "de-mv-informatik-sekii-2019-source-goals-created",
                    "label": "Source-Ziele aus amtlichen Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "140 Source-Ziele."
                  },
                  {
                    "id": "de-mv-informatik-sekii-2019-source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "140 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -14%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "de-mv-informatik-sekii-2019-review-generated",
                    "label": "M3-Review-Datei wird generiert",
                    "passed": true,
                    "details": "Alle MV-Informatik-Source-Ziele erhalten eine fachliche Review-Entscheidung."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9aead51b-8826-52fd-aee4-d69a09253cb7",
            "title": "Informatik und Medienbildung Sekundarstufe I (Mecklenburg-Vorpommern, Rahmenplan 2019 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_INFORMATIK_MEDIENBILDUNG_SEKI_RAHMENPLAN_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-MV-INFORMATIK-MEDIENBILDUNG-SEKI-RP-2019",
                "title": "Rahmenplan Informatik und Medienbildung Sekundarstufe I Gymnasium/Gesamtschule Mecklenburg-Vorpommern 2019",
                "path": "curricula/DE/Gymnasium/input/MV/RP_INFO_AHR_5-10.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_INFO_AHR_5-10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 136,
            "passages": 23,
            "mappedSourceGoals": 136,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 56,
            "partialMappings": 80,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "MV Sek I ist ein durchgaengiges Pflichtfach Informatik und Medienbildung in 5-10 mit zusaetzlichen Medienbildungsanteilen; die Zielzahl ist deshalb hoeher als reine Wahlpflicht- oder Kompaktcurricula, aber quellenplausibel."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.551470588235294,
              "p90Words": 11,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "de-mv-informatik-medienbildung-seki-2019-official-source-present",
                    "label": "Amtliche MV-Informatik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/RP_INFO_AHR_5-10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "de-mv-informatik-medienbildung-seki-2019-passages-extracted",
                    "label": "Original-Lehrplanpassagen als Passagen extrahiert",
                    "passed": true,
                    "details": "23 Passagen aus verbindlichen Ziele-und-Inhalte-Abschnitten."
                  },
                  {
                    "id": "de-mv-informatik-medienbildung-seki-2019-official-pdf-not-legacy",
                    "label": "Source-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/RP_INFO_AHR_5-10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "de-mv-informatik-medienbildung-seki-2019-source-goals-created",
                    "label": "Source-Ziele aus amtlichen Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "136 Source-Ziele."
                  },
                  {
                    "id": "de-mv-informatik-medienbildung-seki-2019-source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "136 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 139%. Kritisch gepruefte Abweichung: MV Sek I ist ein durchgaengiges Pflichtfach Informatik und Medienbildung in 5-10 mit zusaetzlichen Medienbildungsanteilen; die Zielzahl ist deshalb hoeher als reine Wahlpflicht- oder Kompaktcurricula, aber quellenplausibel."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "de-mv-informatik-medienbildung-seki-2019-review-generated",
                    "label": "M3-Review-Datei wird generiert",
                    "passed": true,
                    "details": "Alle MV-Informatik-Source-Ziele erhalten eine fachliche Review-Entscheidung."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "1ae56637-2126-55fc-a75c-76912b49b75c",
            "title": "Informatik Oberstufe (Niedersachsen, KC 2017 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/source-extraction/DE_NI_INFORMATIK_SEKII_KC2017.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-INFORMATIK-GO-2017",
                "title": "Kerncurriculum Informatik gymnasiale Oberstufe Niedersachsen",
                "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/inf_go_kc_druck_2017.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=173",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 115,
            "passages": 13,
            "mappedSourceGoals": 115,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 113,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek II verwendet kompakte tabellarische Kompetenzlisten; zusammengesetzte Bulletpoints wurden in fachlich pruefbare Einzelaspekte zerlegt, sodass die Zielzahl im Korridor bereits gepruefter Oberstufenquellen liegt."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.417391304347826,
              "p90Words": 10,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present",
                    "label": "Amtliche NI-Informatik-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/inf_go_kc_druck_2017.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete NI-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "13/13 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/inf_go_kc_druck_2017.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen NI-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "115 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "115 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -29%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "115 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "d8c57826-ede0-536e-84fa-9516ca4c11a8",
            "title": "Informatik Sekundarstufe I (Niedersachsen, KC Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/source-extraction/DE_NI_INFORMATIK_SEKI_KC2014.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-INFORMATIK-SEK-I",
                "title": "Kerncurriculum Informatik Schuljahrgaenge 5-10 Niedersachsen",
                "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/kc_informatik_sek_i.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=185",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 150,
            "passages": 23,
            "mappedSourceGoals": 150,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 26,
            "partialMappings": 124,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek I wurde aus dem vollstaendigen 27-seitigen Kerncurriculum inklusive Prozess- und Inhaltskompetenzen sowie Lernfeldtabellen extrahiert; die Zielzahl liegt im plausiblen Korridor kompakter Informatik-KCs."
            },
            "sourceGoalGranularity": {
              "averageWords": 7,
              "p90Words": 10,
              "maxWords": 19,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present",
                    "label": "Amtliche NI-Informatik-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/kc_informatik_sek_i.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete NI-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "23/23 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/kc_informatik_sek_i.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen NI-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "150 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "150 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 163%. Kritisch gepruefte Abweichung: NI Sek I wurde aus dem vollstaendigen 27-seitigen Kerncurriculum inklusive Prozess- und Inhaltskompetenzen sowie Lernfeldtabellen extrahiert; die Zielzahl liegt im plausiblen Korridor kompakter Informatik-KCs."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "150 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b9039a23-2901-5de7-9230-f67cd117cb1c",
            "title": "Informatik Oberstufe (Nordrhein-Westfalen, KLP 2013 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/source-extraction/DE_NW_INFORMATIK_SEKII_KLP2013.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-KLP-GOST-INFORMATIK-2013",
                "title": "Kernlehrplan Informatik Gymnasiale Oberstufe Nordrhein-Westfalen 2013",
                "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_informatik.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/klp_gost_informatik.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 189,
            "passages": 17,
            "mappedSourceGoals": 189,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 11,
            "partialMappings": 178,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-NW Sek II wurde aus dem vollstaendigen GOSt-KLP inklusive Einfuehrungsphase, Q-GK und Q-LK extrahiert; LK-spezifische Erweiterungen sind als eigene Source-Ziele erfasst."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.661375661375661,
              "p90Words": 15,
              "maxWords": 24,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-nw-klp-gost-informatik-2013",
                    "label": "Amtliche NRW-Informatik-Quelle liegt lokal vor: NW-KLP-GOST-INFORMATIK-2013",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_informatik.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete NRW-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "17/17 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_informatik.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen NRW-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "189 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "189 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median 16%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "189 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "004de427-f8a7-5f1d-8576-30c2232794b0",
            "title": "Informatik Sekundarstufe I (Nordrhein-Westfalen, KLP 2021/2023 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/source-extraction/DE_NW_INFORMATIK_SEKI_KLP2021_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-KLP-INFORMATIK-KL5-6-2021",
                "title": "Kernlehrplan Informatik Klasse 5/6 Gymnasium Nordrhein-Westfalen 2021",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/si_kl5u6_if_klp_2021_07_01.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/si_kl5u6_if_klp_2021_07_01.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "NW-KLP-WP-INFORMATIK-GYM-2023",
                "title": "Kernlehrplan Wahlpflichtfach Informatik Gymnasium Nordrhein-Westfalen 2023",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_wpif_klp_2023_06_01.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_wpif_klp_2023_06_01.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 100,
            "passages": 13,
            "mappedSourceGoals": 100,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 6,
            "partialMappings": 94,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-NW Sek I umfasst das verpflichtende Informatik-KLP Klasse 5/6 sowie den neuen Gymnasium-Wahlpflicht-KLP 2023 fuer Klasse 9/10; die Zielzahl ist deshalb hoeher als bei reinen Pflichtfach-5/6-Quellen und nicht auffaellig niedrig."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.72,
              "p90Words": 13,
              "maxWords": 22,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-nw-klp-informatik-kl5-6-2021",
                    "label": "Amtliche NRW-Informatik-Quelle liegt lokal vor: NW-KLP-INFORMATIK-KL5-6-2021",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/si_kl5u6_if_klp_2021_07_01.pdf"
                  },
                  {
                    "id": "official-source-document-present-nw-klp-wp-informatik-gym-2023",
                    "label": "Amtliche NRW-Informatik-Quelle liegt lokal vor: NW-KLP-WP-INFORMATIK-GYM-2023",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_wpif_klp_2023_06_01.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete NRW-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "13/13 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/si_kl5u6_if_klp_2021_07_01.pdf, curricula/DE/Gymnasium/input/NW/lower-secondary/g9_wpif_klp_2023_06_01.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen NRW-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "100 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "100 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 75%. Kritisch gepruefte Abweichung: DE-NW Sek I umfasst das verpflichtende Informatik-KLP Klasse 5/6 sowie den neuen Gymnasium-Wahlpflicht-KLP 2023 fuer Klasse 9/10; die Zielzahl ist deshalb hoeher als bei reinen Pflichtfach-5/6-Quellen und nicht auffaellig niedrig."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "100 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4e9c309e-14c1-5d81-ad00-34f1d0f584dd",
            "title": "Informatik Oberstufe (Rheinland-Pfalz, Lehrplan Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/source-extraction/DE_RP_INFORMATIK_SEKII_LP.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-INFORMATIK-SEKII-LP",
                "title": "Lehrplan Informatik Sekundarstufe II Rheinland-Pfalz",
                "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/Informatik_LP_SekII.pdf",
                "url": "https://bildung.rlp.de/fileadmin/user_upload/informatik.bildung.rlp.de/Lehrplaene/Informatik_LP_SekII.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 168,
            "passages": 15,
            "mappedSourceGoals": 168,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 22,
            "partialMappings": 146,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-RP Sek II wurde aus Grundfach, Addita und Leistungskurs-Kapiteln extrahiert. Die Quelle ist breiter als reine Kursstufen-Kurzplaene, aber kompakter formuliert als neuere kompetenzorientierte Kernlehrplaene."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.380952380952381,
              "p90Words": 9,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-rp-informatik-sekii-lp",
                    "label": "Amtliche RP-Informatik-Quelle liegt lokal vor: RP-INFORMATIK-SEKII-LP",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/upper-secondary/Informatik_LP_SekII.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete RP-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "15/15 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/upper-secondary/Informatik_LP_SekII.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen RP-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "168 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "168 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median 3%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "168 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7d7e6393-6503-52f6-9bc3-eafd9500de7f",
            "title": "Informatik Sekundarstufe I (Rheinland-Pfalz, Lehrplan Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/source-extraction/DE_RP_INFORMATIK_SEKI_LP.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-INFORMATIK-SEKI-LP",
                "title": "Lehrplan Informatik Sekundarstufe I Rheinland-Pfalz",
                "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/Informatik_LP_SekI.pdf",
                "url": "https://bildung.rlp.de/fileadmin/user_upload/informatik.bildung.rlp.de/Lehrplaene/Informatik_LP_SekI.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 53,
            "passages": 5,
            "mappedSourceGoals": 53,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 9,
            "partialMappings": 44,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-RP Sek I ist ein kompakter, thematisch stark gebuendelter Lehrplan. Die Extraktion zerlegt alle verbindlichen Tabelleninhalte sowie ausgewiesene optionale Vertiefungen in Source-Ziele; die Zielzahl ist fachlich plausibel und nicht auffaellig niedrig."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.452830188679245,
              "p90Words": 9,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-rp-informatik-seki-lp",
                    "label": "Amtliche RP-Informatik-Quelle liegt lokal vor: RP-INFORMATIK-SEKI-LP",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/lower-secondary/Informatik_LP_SekI.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Erwartete RP-Informatik-Abschnitte sind als Passagen vorhanden",
                    "passed": true,
                    "details": "5/5 Passagen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/lower-secondary/Informatik_LP_SekI.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen RP-Informatik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "53 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "53 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median -7%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "53 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "cd6b2f78-5256-511e-ae4a-35edc02da724",
            "title": "Informatik Sekundarstufe I (Schleswig-Holstein, Fachanforderungen 2021 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SH/lower-secondary/source-extraction/DE_SH_INFORMATIK_SEKI_FACHANFORDERUNGEN_2021.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-INFORMATIK-FA2021",
                "title": "Fachanforderungen Informatik Sekundarstufe I und II Schleswig-Holstein (2021, barrierearm)",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Informatik_Sekundarstufe_2021_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/sh/fachanforderungen/informatik.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Informatik%20Sekundarstufe%20%282021%2C%20barrierearm%29.pdf&cid=16977",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 96,
            "passages": 4,
            "mappedSourceGoals": 96,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 15,
            "partialMappings": 81,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-SH Sek I nutzt die offiziellen, bereits kleinteiligen Kompetenznummern als 96 Source-Ziele; die Zielzahl liegt im Korridor der bereits geprueften Informatik-Sek-I-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 25.75,
              "p90Words": 37,
              "maxWords": 53,
              "longGoals": 5,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-sh-informatik-seki-fa2021-a14-1-wenden-bei-der-implementie-programmierumgebun-85b1f4a3",
                  "topicCode": "SH-INF-SEKI-A-A14",
                  "words": 53,
                  "text": "A14 … wenden bei der Implementie- Programmierumgebung ist rung von Algorithmen geeignete möglich. algorithmische Strategien an. Als Anwendungskontexte eig- n..."
                },
                {
                  "id": "de-sh-informatik-seki-fa2021-a19-1-entwerfen-algorithmische-prob-lineare-suche-u-3db44066",
                  "topicCode": "SH-INF-SEKI-A-A19",
                  "words": 52,
                  "text": "A19 … entwerfen algorithmische Prob- Lineare Suche (u.a. in Texten) Als Anwendungskontext eig- lemlösungen unter Verwendung Liste als einfacher Vertreter ein..."
                },
                {
                  "id": "de-sh-informatik-seki-fa2021-d25-1-beschreiben-merkmale-von-vek-vektorgrafik-als-1cc2f7d1",
                  "topicCode": "SH-INF-SEKI-D-D25",
                  "words": 47,
                  "text": "D25 … beschreiben Merkmale von Vek- Vektorgrafik als Komposition von Ob- Es wird die Verwendung von tor- und Rastergrafiken sowie jekten Begriffen der Objekt..."
                },
                {
                  "id": "de-sh-informatik-seki-fa2021-a7-1-wenden-das-variablenkonzept-an-definition-und--1ef08132",
                  "topicCode": "SH-INF-SEKI-A-A7",
                  "words": 47,
                  "text": "A7 … wenden das Variablenkonzept an. · Definition und Initialisierung Wiederholung). · Zuweisung Die Behandlung von Datenty- pen ermöglicht eine Verzah- nung..."
                },
                {
                  "id": "de-sh-informatik-seki-fa2021-i1-1-beschreiben-einfache-und-kom-bandbreite-der-in-4b125924",
                  "topicCode": "SH-INF-SEKI-I-I1",
                  "words": 46,
                  "text": "I1 … beschreiben einfache und kom- Bandbreite der Informatiksysteme in K5.2 plexe Informatiksysteme und der modernen Welt ausgehend von deren Einsatzbereich...."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-sh-informatik-seki",
                    "label": "Amtliche SH-Informatik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Informatik_Sekundarstufe_2021_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-sh-informatik-seki",
                    "label": "Inhaltsbezogene Kompetenzbereiche als Originalpassagen extrahiert",
                    "passed": true,
                    "details": "4 Passagen aus den offiziellen Kompetenzbereichen."
                  },
                  {
                    "id": "source-extraction-official-pdf-sh-informatik-seki",
                    "label": "Source-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Informatik_Sekundarstufe_2021_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sh-informatik-seki",
                    "label": "Source-Ziele aus offiziellen Kompetenznummern/Inhaltsaspekten erzeugt",
                    "passed": true,
                    "details": "96 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sh-informatik-seki",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goal-passages-valid-sh-informatik-seki",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "96 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 68%. Kritisch gepruefte Abweichung: DE-SH Sek I nutzt die offiziellen, bereits kleinteiligen Kompetenznummern als 96 Source-Ziele; die Zielzahl liegt im Korridor der bereits geprueften Informatik-Sek-I-Laender."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "review-file-generated-sh-informatik-seki",
                    "label": "M3-Review-Datei wird generiert",
                    "passed": true,
                    "details": "Alle Source-Ziele erhalten eine fachliche Review-Entscheidung."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "21c62b97-e685-5ac9-9323-8852e2ccf450",
            "title": "Informatik Sekundarstufe II (Schleswig-Holstein, Fachanforderungen 2021 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/upper-secondary/source-extraction/DE_SH_INFORMATIK_SEKII_FACHANFORDERUNGEN_2021.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-INFORMATIK-FA2021",
                "title": "Fachanforderungen Informatik Sekundarstufe I und II Schleswig-Holstein (2021, barrierearm)",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Informatik_Sekundarstufe_2021_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/sh/fachanforderungen/informatik.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Informatik%20Sekundarstufe%20%282021%2C%20barrierearm%29.pdf&cid=16977",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 123,
            "passages": 4,
            "mappedSourceGoals": 123,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 10,
            "partialMappings": 113,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-SH Sek II wurde wegen der stark gebuendelten Tabellenzeilen fachlich nach Inhaltsaspekten auf 123 Source-Ziele aufgeteilt; die Zielzahl liegt damit im Korridor der bereits geprueften Informatik-Sek-II-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 33.15447154471545,
              "p90Words": 54,
              "maxWords": 91,
              "longGoals": 22,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-sh-informatik-sekii-fa2021-ad9-1-iteration-und-ereignisse-5ee2c414",
                  "topicCode": "SH-INF-SEKII-AD-AD9",
                  "words": 91,
                  "text": "AD9: Iteration und Ereignisse. AD9 … entwerfen und implementieren algorithmische Konzepte Als Anwendungskontext Algorithmen zur Lösung einer · einfache Itera..."
                },
                {
                  "id": "de-sh-informatik-sekii-fa2021-ad9-3-suche-und-aufzaehlen-adc9acd4",
                  "topicCode": "SH-INF-SEKII-AD-AD9",
                  "words": 91,
                  "text": "AD9: Suche und Aufzaehlen. AD9 … entwerfen und implementieren algorithmische Konzepte Als Anwendungskontext Algorithmen zur Lösung einer · einfache Iteration..."
                },
                {
                  "id": "de-sh-informatik-sekii-fa2021-ad9-2-verschachtelte-wiederholungen-f6886d0b",
                  "topicCode": "SH-INF-SEKII-AD-AD9",
                  "words": 90,
                  "text": "AD9: verschachtelte Wiederholungen. AD9 … entwerfen und implementieren algorithmische Konzepte Als Anwendungskontext Algorithmen zur Lösung einer · einfache ..."
                },
                {
                  "id": "de-sh-informatik-sekii-fa2021-ad9-4-variablenrollen-8105925f",
                  "topicCode": "SH-INF-SEKII-AD-AD9",
                  "words": 89,
                  "text": "AD9: Variablenrollen. AD9 … entwerfen und implementieren algorithmische Konzepte Als Anwendungskontext Algorithmen zur Lösung einer · einfache Iteration über..."
                },
                {
                  "id": "de-sh-informatik-sekii-fa2021-ad9-5-modularisierung-3bf297ff",
                  "topicCode": "SH-INF-SEKII-AD-AD9",
                  "words": 89,
                  "text": "AD9: Modularisierung. AD9 … entwerfen und implementieren algorithmische Konzepte Als Anwendungskontext Algorithmen zur Lösung einer · einfache Iteration über..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-sh-informatik-sekii",
                    "label": "Amtliche SH-Informatik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Informatik_Sekundarstufe_2021_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-sh-informatik-sekii",
                    "label": "Inhaltsbezogene Kompetenzbereiche als Originalpassagen extrahiert",
                    "passed": true,
                    "details": "4 Passagen aus den offiziellen Kompetenzbereichen."
                  },
                  {
                    "id": "source-extraction-official-pdf-sh-informatik-sekii",
                    "label": "Source-Extraction basiert auf amtlicher PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Informatik_Sekundarstufe_2021_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sh-informatik-sekii",
                    "label": "Source-Ziele aus offiziellen Kompetenznummern/Inhaltsaspekten erzeugt",
                    "passed": true,
                    "details": "123 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sh-informatik-sekii",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goal-passages-valid-sh-informatik-sekii",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "123 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -25%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "review-file-generated-sh-informatik-sekii",
                    "label": "M3-Review-Datei wird generiert",
                    "passed": true,
                    "details": "Alle Source-Ziele erhalten eine fachliche Review-Entscheidung."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4a395591-fbc5-555b-b596-3a2f753dd6f5",
            "title": "Informatik Sekundarstufe I (Saarland, Gymnasium G9 2023-2026 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_INFORMATIK_SEKI_GYM9_2023_2026.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-INF-GYM9-7-2023",
                "title": "Lehrplan Informatik Gymnasium G9 Klassenstufe 7 Saarland 2023, redaktionell 2025",
                "path": "curricula/DE/Gymnasium/input/SL/informatics-official/LP_gym9_INFO_7_2023-1.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Informatik/LP_gym9_INFO_7_2023.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-INF-GYM9-8-2023",
                "title": "Lehrplan Informatik Gymnasium G9 Klassenstufe 8 Saarland 2023, redaktionell 2025",
                "path": "curricula/DE/Gymnasium/input/SL/informatics-official/LP_gym9_INFO_8_2023-1.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Informatik/LP_gym9_INFO_8_2023.pdf?__blob=publicationFile&v=6",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-INF-GYM9-9-2025",
                "title": "Lehrplan Informatik Gymnasium G9 Klassenstufe 9 Saarland 2025",
                "path": "curricula/DE/Gymnasium/input/SL/informatics-official/LP_gym9_INFO_9_2025.web-extract.md",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Informatik/LP_gym9_INFO_9_2025.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              },
              {
                "key": "SL-INF-GYM9-10-2026",
                "title": "Lehrplan Informatik Gymnasium G9 Klassenstufe 10 Saarland 2026",
                "path": "curricula/DE/Gymnasium/input/SL/informatics-official/LP_gym9_INFO_10_2026.web-extract.md",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Informatik/LP_gym9_INFO_10_2026.pdf?__blob=publicationFile&v=7",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 145,
            "passages": 13,
            "mappedSourceGoals": 145,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 67,
            "partialMappings": 78,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "145 Source-Ziele; die Zielzahl liegt im Korridor der bereits geprueften Informatik-Laender und ist wegen Saarland 7-10 plus Oberstufenprofil nicht auffaellig niedrig."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.2,
              "p90Words": 10,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present-sl-informatik-seki",
                    "label": "Amtliche Saarland-Informatik-Quellen sind lokal referenziert",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/informatics-official/LP_gym9_INFO_7_2023-1.pdf; curricula/DE/Gymnasium/input/SL/informatics-official/LP_gym9_INFO_8_2023-1.pdf; curricula/DE/Gymnasium/input/SL/informatics-official/LP_gym9_INFO_9_2025.web-extract.md; curricula/DE/Gymnasium/input/SL/informatics-official/LP_gym9_INFO_10_2026.web-extract.md"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-sl-informatik-seki",
                    "label": "Lehrplanpassagen aus amtlichen Saarland-Quellen extrahiert",
                    "passed": true,
                    "details": "13 Passagen aus Informatik Sekundarstufe I (Saarland, Gymnasium G9 2023-2026 Source-Extraction)."
                  },
                  {
                    "id": "source-extraction-not-legacy-sl-informatik-seki",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "7/8 liegen als lokale PDF-Kopien vor; weitere blockierte saarland.de-PDFs sind lokal als Web-Extract-Quellennotizen dokumentiert."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sl-informatik-seki",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "145 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sl-informatik-seki",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goal-passages-valid-sl-informatik-seki",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "145 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 154%. Kritisch gepruefte Abweichung: 145 Source-Ziele; die Zielzahl liegt im Korridor der bereits geprueften Informatik-Laender und ist wegen Saarland 7-10 plus Oberstufenprofil nicht auffaellig niedrig."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "review-file-generated-sl-informatik-seki",
                    "label": "M3-Review-Datei wird generiert",
                    "passed": true,
                    "details": "Alle Source-Ziele erhalten eine fachliche Review-Entscheidung."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "71b107e2-9605-5b59-addd-6874da4d2437",
            "title": "Informatik Sekundarstufe II (Saarland, GOS 2006/2019 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_INFORMATIK_SEKII_GOS_2006_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-INF-GOS-EP-2006",
                "title": "Lehrplan Informatik Einfuehrungsphase der gymnasialen Oberstufe Saarland 2006",
                "path": "curricula/DE/Gymnasium/input/SL/informatics-official/INEinfphFeb2006.web-extract.md",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Informatik/INEinfphFeb2006.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              },
              {
                "key": "SL-INF-GOS-GK-2019",
                "title": "Lehrplan Informatik Hauptphase Grundkurs Saarland 2019",
                "path": "curricula/DE/Gymnasium/input/SL/informatics-official/LP_In_HP_GK_2019.web-extract.md",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Informatik/LP_In_HP_GK_2019.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              },
              {
                "key": "SL-INF-GOS-LK-2019",
                "title": "Lehrplan Informatik Hauptphase Leistungskurs Saarland 2019",
                "path": "curricula/DE/Gymnasium/input/SL/informatics-official/LP_In_HP_LK_2019.web-extract.md",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Informatik/LP_In_HP_LK_2019.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 75,
            "passages": 11,
            "mappedSourceGoals": 75,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 48,
            "partialMappings": 27,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "75 Source-Ziele; die Zielzahl liegt im Korridor der bereits geprueften Informatik-Laender und ist wegen Saarland 7-10 plus Oberstufenprofil nicht auffaellig niedrig."
            },
            "sourceGoalGranularity": {
              "averageWords": 5.093333333333334,
              "p90Words": 8,
              "maxWords": 9,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-documents-present-sl-informatik-sekii",
                    "label": "Amtliche Saarland-Informatik-Quellen sind lokal referenziert",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/informatics-official/INEinfphFeb2006.web-extract.md; curricula/DE/Gymnasium/input/SL/informatics-official/LP_In_HP_GK_2019.web-extract.md; curricula/DE/Gymnasium/input/SL/informatics-official/LP_In_HP_LK_2019.web-extract.md"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-sl-informatik-sekii",
                    "label": "Lehrplanpassagen aus amtlichen Saarland-Quellen extrahiert",
                    "passed": true,
                    "details": "11 Passagen aus Informatik Sekundarstufe II (Saarland, GOS 2006/2019 Source-Extraction)."
                  },
                  {
                    "id": "source-extraction-not-legacy-sl-informatik-sekii",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "7/8 liegen als lokale PDF-Kopien vor; weitere blockierte saarland.de-PDFs sind lokal als Web-Extract-Quellennotizen dokumentiert."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created-sl-informatik-sekii",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "75 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-sl-informatik-sekii",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goal-passages-valid-sl-informatik-sekii",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "75 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -54%. Kritisch gepruefte Abweichung: 75 Source-Ziele; die Zielzahl liegt im Korridor der bereits geprueften Informatik-Laender und ist wegen Saarland 7-10 plus Oberstufenprofil nicht auffaellig niedrig."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "review-file-generated-sl-informatik-sekii",
                    "label": "M3-Review-Datei wird generiert",
                    "passed": true,
                    "details": "Alle Source-Ziele erhalten eine fachliche Review-Entscheidung."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2b4481b1-2269-5d01-a987-f7d8920dcf04",
            "title": "Informatik Jahrgangsstufen 11/12 (Sachsen, Lehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SN/upper-secondary/source-extraction/DE_SN_INFORMATIK_SEKII_LEHRPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-SN-INFORMATIK-GYMNASIUM-LEHRPLAN-2022",
                "title": "Lehrplan Gymnasium Informatik Sachsen 2022",
                "path": "curricula/DE/Gymnasium/input/SN/Informatik_Gymnasium_2022.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/630/fTqTlkXseYZLUMB5l3pV",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 257,
            "passages": 27,
            "mappedSourceGoals": 257,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 8,
            "partialMappings": 249,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-SN SekII nutzt 257 granulare Source-Ziele aus Kompetenzzeilen und amtlichen Unterpunkten; niedrige Blockzaehlung wurde bewusst durch Unterpunkt-Splitting vermieden."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.82490272373541,
              "p90Words": 25,
              "maxWords": 61,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-sn-informatik-sekii-lp2022-lk-wahlbereiche-029-ubertragen-der-kenntnisse-von-rekursion-und-heron-verfahren-newton-verfa-edab209f",
                  "topicCode": "SN-INF-LK-WB-29",
                  "words": 61,
                  "text": "Übertragen der Kenntnisse von Rekursion und Heron-Verfahren, Newton-Verfahren, Lösen Iteration auf numerische Verfahren linearer Gleichungssysteme, Interpola..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-present-sn-informatik-sekii",
                    "label": "Amtlicher SN-Informatik-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/Informatik_Gymnasium_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "sn-informatik-sekii-passages",
                    "label": "Verbindliche Lern- und Wahlbereiche wurden extrahiert",
                    "passed": true,
                    "details": "27 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "sn-informatik-sekii-source-goals",
                    "label": "Source-Ziele aus amtlichen Kompetenzzeilen und Unterpunkten erzeugt",
                    "passed": true,
                    "details": "257 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "257 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median 58%. Kritisch gepruefte Abweichung: DE-SN SekII nutzt 257 granulare Source-Ziele aus Kompetenzzeilen und amtlichen Unterpunkten; niedrige Blockzaehlung wurde bewusst durch Unterpunkt-Splitting vermieden."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "sn-informatik-sekii-review-complete",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "257/257 Source-Ziele reviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ae0fb0d0-b021-5f91-b36d-728b2cada81b",
            "title": "Informatik Sekundarstufe I (Sachsen, Lehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_INFORMATIK_SEKI_LEHRPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-SN-INFORMATIK-GYMNASIUM-LEHRPLAN-2022",
                "title": "Lehrplan Gymnasium Informatik Sachsen 2022",
                "path": "curricula/DE/Gymnasium/input/SN/Informatik_Gymnasium_2022.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/630/fTqTlkXseYZLUMB5l3pV",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 78,
            "passages": 16,
            "mappedSourceGoals": 78,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 77,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "DE-SN SekI nutzt 78 granulare Source-Ziele aus Kompetenzzeilen und amtlichen Unterpunkten; niedrige Blockzaehlung wurde bewusst durch Unterpunkt-Splitting vermieden."
            },
            "sourceGoalGranularity": {
              "averageWords": 22.371794871794872,
              "p90Words": 40,
              "maxWords": 64,
              "longGoals": 6,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-sn-informatik-seki-lp2022-klasse-8-lb2-vernetzte-systeme-008-beurteilen-von-informationen-und-informations-bildmanipulationen-automat-7bb12791",
                  "topicCode": "SN-INF-8-LB2-08",
                  "words": 64,
                  "text": "Beurteilen von Informationen und Informations- Bildmanipulationen, automatische quellen Textgenerierung Medienbildung T/C, Kl. 5/6, LB 1 DE, Kl. 9, LB 3 ETH,..."
                },
                {
                  "id": "de-sn-informatik-seki-lp2022-klasse-8-lb3-komplexaufgabe-002-anwenden-informatischer-konzepte-bei-der-losung-verknupfung-von-lernbere-243e39ed",
                  "topicCode": "SN-INF-8-LB3-02",
                  "words": 59,
                  "text": "Anwenden informatischer Konzepte bei der Lösung Verknüpfung von Lernbereichen der einer Komplexaufgabe Klassenstufen 7 und 8 Gestaltung eines fächerverbinden..."
                },
                {
                  "id": "de-sn-informatik-seki-lp2022-klasse-10-lb3-komplexaufgabe-001-gestalten-eines-projektes-zur-losung-einer-verknupfung-von-lernbereichen-dd634ac6",
                  "topicCode": "SN-INF-10-LB3-01",
                  "words": 56,
                  "text": "Gestalten eines Projektes zur Lösung einer Verknüpfung von Lernbereichen der informatischen Problemstellung Klassenstufen 9 und 10 Erstellung und Testung ein..."
                },
                {
                  "id": "de-sn-informatik-seki-lp2022-klasse-8-lb3-komplexaufgabe-001-anwenden-informatischer-konzepte-bei-der-losung-verknupfung-von-lernbere-0d93486b",
                  "topicCode": "SN-INF-8-LB3-01",
                  "words": 53,
                  "text": "Anwenden informatischer Konzepte bei der Lösung Verknüpfung von Lernbereichen der einer Komplexaufgabe Klassenstufen 7 und 8 Gestaltung eines fächerverbinden..."
                },
                {
                  "id": "de-sn-informatik-seki-lp2022-klasse-8-lb2-vernetzte-systeme-007-beurteilen-von-informationen-und-informations-bildmanipulationen-automat-b01213fd",
                  "topicCode": "SN-INF-8-LB2-07",
                  "words": 49,
                  "text": "Beurteilen von Informationen und Informations- Bildmanipulationen, automatische quellen Textgenerierung Medienbildung T/C, Kl. 5/6, LB 1 DE, Kl. 9, LB 3 ETH,..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-present-sn-informatik-seki",
                    "label": "Amtlicher SN-Informatik-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/Informatik_Gymnasium_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "sn-informatik-seki-passages",
                    "label": "Verbindliche Lern- und Wahlbereiche wurden extrahiert",
                    "passed": true,
                    "details": "16 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "sn-informatik-seki-source-goals",
                    "label": "Source-Ziele aus amtlichen Kompetenzzeilen und Unterpunkten erzeugt",
                    "passed": true,
                    "details": "78 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "78 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 37%. Kritisch gepruefte Abweichung: DE-SN SekI nutzt 78 granulare Source-Ziele aus Kompetenzzeilen und amtlichen Unterpunkten; niedrige Blockzaehlung wurde bewusst durch Unterpunkt-Splitting vermieden."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "sn-informatik-seki-review-complete",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "78/78 Source-Ziele reviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f6308211-309f-58ea-b283-531349699cbd",
            "title": "Informatik Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_INFORMATIK_SEKI_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-INF-GYM-2022",
                "title": "Fachlehrplan Informatik Gymnasium Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Informatik_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Informatik_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 91,
            "passages": 4,
            "mappedSourceGoals": 91,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 17,
            "partialMappings": 74,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "91 Source-Ziele; Sachsen-Anhalt liegt mit einem kompakten, aber vollstaendigen 2022-Fachlehrplan im Korridor der bereits geprueften Informatik-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.604395604395604,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-st-informatik-seki",
                    "label": "Amtlicher Sachsen-Anhalt-Fachlehrplan Informatik Gymnasium 2022 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Informatik_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-st-informatik-seki",
                    "label": "Lehrplanpassagen aus amtlicher Sachsen-Anhalt-Quelle extrahiert",
                    "passed": true,
                    "details": "4 Passagen aus Informatik Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)."
                  },
                  {
                    "id": "source-extraction-not-legacy-st-informatik-seki",
                    "label": "Source-Extraction basiert auf amtlichem PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Informatik_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-present-st-informatik-seki",
                    "label": "Source-Ziele aus amtlichen Kompetenzpassagen erzeugt",
                    "passed": true,
                    "details": "91 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-st-informatik-seki",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-passage-backed-st-informatik-seki",
                    "label": "Jedes Source-Ziel referenziert eine Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "91 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 60%. Kritisch gepruefte Abweichung: 91 Source-Ziele; Sachsen-Anhalt liegt mit einem kompakten, aber vollstaendigen 2022-Fachlehrplan im Korridor der bereits geprueften Informatik-Laender."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-decisions-complete-st-informatik-seki",
                    "label": "Alle Source-Ziele haben fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "91/91 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-content-covered-st-informatik-seki",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Abgedeckt: 91/91; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "96309127-ac64-5983-af2a-cbfc776dc764",
            "title": "Informatik Sekundarstufe II (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/ST/upper-secondary/source-extraction/DE_ST_INFORMATIK_SEKII_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-INF-GYM-2022",
                "title": "Fachlehrplan Informatik Gymnasium Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Informatik_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Informatik_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 82,
            "passages": 4,
            "mappedSourceGoals": 82,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 14,
            "partialMappings": 68,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "82 Source-Ziele; Sachsen-Anhalt liegt mit einem kompakten, aber vollstaendigen 2022-Fachlehrplan im Korridor der bereits geprueften Informatik-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.585365853658536,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-st-informatik-sekii",
                    "label": "Amtlicher Sachsen-Anhalt-Fachlehrplan Informatik Gymnasium 2022 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Informatik_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-st-informatik-sekii",
                    "label": "Lehrplanpassagen aus amtlicher Sachsen-Anhalt-Quelle extrahiert",
                    "passed": true,
                    "details": "4 Passagen aus Informatik Sekundarstufe II (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)."
                  },
                  {
                    "id": "source-extraction-not-legacy-st-informatik-sekii",
                    "label": "Source-Extraction basiert auf amtlichem PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Informatik_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-present-st-informatik-sekii",
                    "label": "Source-Ziele aus amtlichen Kompetenzpassagen erzeugt",
                    "passed": true,
                    "details": "82 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-st-informatik-sekii",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-passage-backed-st-informatik-sekii",
                    "label": "Jedes Source-Ziel referenziert eine Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "82 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -50%. Kritisch gepruefte Abweichung: 82 Source-Ziele; Sachsen-Anhalt liegt mit einem kompakten, aber vollstaendigen 2022-Fachlehrplan im Korridor der bereits geprueften Informatik-Laender."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-decisions-complete-st-informatik-sekii",
                    "label": "Alle Source-Ziele haben fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "82/82 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-content-covered-st-informatik-sekii",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Abgedeckt: 82/82; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ef0c204d-798b-5c05-9912-dabc40b6bd73",
            "title": "Informatik Sekundarstufe I (Thueringen, Lehrplan Gymnasium 2012 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Informatik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_INFORMATIK_SEKI_LEHRPLAN_GYMNASIUM_2012.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-INF-GYM-2012",
                "title": "Lehrplan Informatik Gymnasium Thüringen 2012",
                "path": "curricula/DE/Gymnasium/input/TH/Lehrplan_inf_Gym_9_12_26112012.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/21770?dateiname=Lehrplan_inf_Gym_9_12_26112012.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 105,
            "passages": 7,
            "mappedSourceGoals": 105,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 9,
            "partialMappings": 96,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "105 Source-Ziele; Thüringen liegt im Korridor der bereits geprueften Informatik-Laender. Der Lehrplan ist kompakt, deckt aber Sek I, Brueckenphase und Q-Phase ab."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.9523809523809526,
              "p90Words": 10,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-th-informatik-seki",
                    "label": "Amtlicher Thüringer Lehrplan Informatik Gymnasium 2012 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/Lehrplan_inf_Gym_9_12_26112012.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-th-informatik-seki",
                    "label": "Lehrplanpassagen aus amtlicher Thüringen-Quelle extrahiert",
                    "passed": true,
                    "details": "7 Passagen aus Informatik Sekundarstufe I (Thueringen, Lehrplan Gymnasium 2012 Source-Extraction)."
                  },
                  {
                    "id": "source-extraction-not-legacy-th-informatik-seki",
                    "label": "Source-Extraction basiert auf amtlichem PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/Lehrplan_inf_Gym_9_12_26112012.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-present-th-informatik-seki",
                    "label": "Source-Ziele aus amtlichen Kompetenzpassagen erzeugt",
                    "passed": true,
                    "details": "105 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-th-informatik-seki",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-passage-backed-th-informatik-seki",
                    "label": "Jedes Source-Ziel referenziert eine Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "105 Source-Ziele; Vergleich HE/BW SEKI (57); Median 57; zulässiger 30%-Median-Korridor 40-74; Abweichung vom Median 84%. Kritisch gepruefte Abweichung: 105 Source-Ziele; Thüringen liegt im Korridor der bereits geprueften Informatik-Laender. Der Lehrplan ist kompakt, deckt aber Sek I, Brueckenphase und Q-Phase ab."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-decisions-complete-th-informatik-seki",
                    "label": "Alle Source-Ziele haben fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "105/105 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-content-covered-th-informatik-seki",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Abgedeckt: 105/105; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a5da5aeb-e9bb-5af0-8374-3e36ecfc4ded",
            "title": "Informatik Sekundarstufe II (Thueringen, Lehrplan Gymnasium 2012 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Informatik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/TH/upper-secondary/source-extraction/DE_TH_INFORMATIK_SEKII_LEHRPLAN_GYMNASIUM_2012.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-INF-GYM-2012",
                "title": "Lehrplan Informatik Gymnasium Thüringen 2012",
                "path": "curricula/DE/Gymnasium/input/TH/Lehrplan_inf_Gym_9_12_26112012.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/21770?dateiname=Lehrplan_inf_Gym_9_12_26112012.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 92,
            "passages": 5,
            "mappedSourceGoals": 92,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 23,
            "partialMappings": 69,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "92 Source-Ziele; Thüringen liegt im Korridor der bereits geprueften Informatik-Laender. Der Lehrplan ist kompakt, deckt aber Sek I, Brueckenphase und Q-Phase ab."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.858695652173913,
              "p90Words": 10,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-document-present-th-informatik-sekii",
                    "label": "Amtlicher Thüringer Lehrplan Informatik Gymnasium 2012 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/Lehrplan_inf_Gym_9_12_26112012.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted-th-informatik-sekii",
                    "label": "Lehrplanpassagen aus amtlicher Thüringen-Quelle extrahiert",
                    "passed": true,
                    "details": "5 Passagen aus Informatik Sekundarstufe II (Thueringen, Lehrplan Gymnasium 2012 Source-Extraction)."
                  },
                  {
                    "id": "source-extraction-not-legacy-th-informatik-sekii",
                    "label": "Source-Extraction basiert auf amtlichem PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/Lehrplan_inf_Gym_9_12_26112012.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-present-th-informatik-sekii",
                    "label": "Source-Ziele aus amtlichen Kompetenzpassagen erzeugt",
                    "passed": true,
                    "details": "92 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique-th-informatik-sekii",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-passage-backed-th-informatik-sekii",
                    "label": "Jedes Source-Ziel referenziert eine Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "92 Source-Ziele; Vergleich HE/BW SEKII (171/155); Median 163; zulässiger 30%-Median-Korridor 115-211; Abweichung vom Median -44%. Kritisch gepruefte Abweichung: 92 Source-Ziele; Thüringen liegt im Korridor der bereits geprueften Informatik-Laender. Der Lehrplan ist kompakt, deckt aber Sek I, Brueckenphase und Q-Phase ab."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-decisions-complete-th-informatik-sekii",
                    "label": "Alle Source-Ziele haben fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "92/92 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-content-covered-th-informatik-sekii",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Abgedeckt: 92/92; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-informatics-crossstage",
          "label": "Sekundarstufe I/II",
          "selectedAtomicGoals": 207,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 207,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 207,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-104",
              "status": "pass",
              "summary": "Route endpoints are visible in all relevant composition views.",
              "metrics": {
                "relevantCompositionViews": 18,
                "requiredMotivationAnchors": 1,
                "requiredTerminalAutonomyGoals": 14,
                "viewsMissingMotivationAnchors": 0,
                "viewsMissingTerminalAutonomyGoals": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 14,
                "terminalAutonomyGoalsWithExamData": 14,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 282,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 3505,
            "sourceOriginalGoals": 3505,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 3505,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 3505,
            "sourceMappedToViewAtomicGoals": 3505,
            "sourceOriginalGoals": 3505,
            "sourceFullyCoveredOriginalGoals": 3505,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 64,
            "maxVisibleAtomicGoals": 207,
            "maxSourceBackedAtomicGoals": 207,
            "totalAtomicGoals": 209
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 528 upper-secondary source-to-canonical mapping edge(s), including 90 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 29,
            "sourceGoals": 2231,
            "sourceGoalsWithCourseLevel": 2231,
            "gkLkSourceGoals": 1135,
            "lkSourceGoals": 798,
            "unspecifiedSourceGoals": 163,
            "checkedMappingEdges": 528,
            "defaultedUnspecifiedMappingEdges": 46,
            "reviewedCourseLevelExceptions": 90,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 29,
            "peerBaselineChecks": 26,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 1,
            "leafGoals": 207,
            "atomic": 207,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 9/207 ordinary atomic goals intentionally use memorization support, 28/28 primary cards are kept with origin traces, all 5 memory goals are traced, and 96 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 207,
            "noMemoryNeeded": 198,
            "memoryRequired": 9,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 28,
            "keptCards": 28,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 18,
            "visibilityCheckedMemoryRequiredGoals": 96,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 5,
            "tracedMemoryGoals": 5,
            "untracedMemoryGoals": 0,
            "deckIds": 5,
            "deckFiles": 5,
            "cardRows": 28
          },
          "details": [
            "canonical-informatics-full: audit report docs/qa-ci/status/memory-card-review-canonical-informatics-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "19 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 19
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 1132,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 1132",
            "diagnostic finding type APV-202: 1132"
          ]
        }
      ]
    },
    {
      "landscapeId": "25c6b527-10d6-5d92-9d76-fab23585f29b",
      "title": "Italienisch (Gymnasium, DE)",
      "subject": "Italienisch",
      "frameworkId": "canonical-gymnasium-italian",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_ITALIENISCH.de.json",
      "maturity": "M0",
      "goals": 8,
      "atomicGoals": 7,
      "clusterGoals": 1,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 6,
        "rawAtomicGoals": 7,
        "coveredJurisdictions": 1,
        "sourceBackedJurisdictions": 1,
        "sourceCompleteJurisdictions": 0,
        "cleanJurisdictions": 0,
        "partialJurisdictions": 0,
        "errorJurisdictions": 1,
        "maxVisibleAtomicGoals": 6,
        "maxSourceBackedAtomicGoals": 6,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 7,
        "sourceMappedToViewAtomicGoals": 7,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 0,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 0,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 8,
        "sourceFullyCoveredOriginalGoals": 8,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 8,
            "visibleAtomicGoals": 6,
            "visibleClusterGoals": 2,
            "viewAtomicGoals": 6,
            "sourceBackedAtomicGoals": 6,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 7,
            "sourceMappedToViewAtomicGoals": 7,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 8,
            "sourceFullyCoveredOriginalGoals": 8,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "error"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 1,
        "completeSources": 0,
        "incompleteSources": 0,
        "blockedSources": 1,
        "maxCompletedSteps": 0,
        "totalSteps": 3,
        "currentStep": "MAPPING-1",
        "sources": [
          {
            "sourceLandscapeId": "c7643536-1163-50d8-86a6-9645c8fd3e25",
            "title": "Italienisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "path": "curricula/DE/Gymnasium/mapping/DE-BY/gymnasium/bavaria_italian_to_canonical_italian.json",
            "sourceKind": "missing-extraction",
            "currentStep": "MAPPING-1",
            "completedSteps": 0,
            "totalSteps": 3,
            "sourceGoals": 0,
            "passages": 0,
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "incomplete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-extraction-file-present",
                    "label": "Persistiertes Source-Extraction-Artefakt vorhanden",
                    "passed": false,
                    "details": "Für diese Source-Landschaft ist noch keine geprüfte source-extraction-Datei registriert."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "blocked",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": false,
                    "details": "Source-Ziele dürfen erst nach vollständig extrahierten Originalpassagen als abgeschlossen gelten."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "blocked",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": false,
                    "details": "Das Mapping auf SkillPilot-Ziele darf erst nach geprüften Source-Zielen als abgeschlossen gelten."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 8,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "fail",
          "summary": "0/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 0,
            "emptySourceJurisdictions": 15,
            "missingReadableSourceInventoryJurisdictions": 1,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 0,
            "sourceOriginalGoals": 8,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BY: 8 source original goal(s) are registered, but no readable source inventory goals were extracted",
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-HE: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "0/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 1,
            "sourceBackedJurisdictions": 1,
            "sourceCompleteJurisdictions": 0,
            "fullCoverageJurisdictions": 0,
            "uncoveredJurisdictions": 15,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 7,
            "sourceMappedToViewAtomicGoals": 7,
            "sourceOriginalGoals": 8,
            "sourceFullyCoveredOriginalGoals": 8,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 0,
            "partialJurisdictions": 0,
            "errorJurisdictions": 1,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 6,
            "maxSourceBackedAtomicGoals": 6,
            "totalAtomicGoals": 6
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-HE: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "not_configured",
          "summary": "No persisted source-extraction mapping with GK/LK course-level metadata is configured for this curriculum."
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 0,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "668cf206-941e-51f8-8704-3e8938631235",
      "title": "Latein (Gymnasium, DE)",
      "subject": "Latein",
      "frameworkId": "canonical-gymnasium-latin",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_LATEIN.de.json",
      "maturity": "M6",
      "goals": 176,
      "atomicGoals": 136,
      "clusterGoals": 40,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 115,
        "rawAtomicGoals": 136,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 115,
        "maxSourceBackedAtomicGoals": 115,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 8481,
        "sourceMappedToViewAtomicGoals": 8481,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 8481,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 8481,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 8481,
        "sourceFullyCoveredOriginalGoals": 8481,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 807,
            "sourceMappedToViewAtomicGoals": 807,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 807,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 807,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 807,
            "sourceFullyCoveredOriginalGoals": 807,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 54,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 176,
            "visibleAtomicGoals": 115,
            "visibleClusterGoals": 61,
            "viewAtomicGoals": 115,
            "sourceBackedAtomicGoals": 115,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 94,
            "sourceMappedToViewAtomicGoals": 94,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 94,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 94,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 94,
            "sourceFullyCoveredOriginalGoals": 94,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 176,
            "visibleAtomicGoals": 115,
            "visibleClusterGoals": 61,
            "viewAtomicGoals": 115,
            "sourceBackedAtomicGoals": 115,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 832,
            "sourceMappedToViewAtomicGoals": 832,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 832,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 832,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 832,
            "sourceFullyCoveredOriginalGoals": 832,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 121,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 176,
            "visibleAtomicGoals": 115,
            "visibleClusterGoals": 61,
            "viewAtomicGoals": 115,
            "sourceBackedAtomicGoals": 115,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 316,
            "sourceMappedToViewAtomicGoals": 316,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 316,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 316,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 316,
            "sourceFullyCoveredOriginalGoals": 316,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 176,
            "visibleAtomicGoals": 115,
            "visibleClusterGoals": 61,
            "viewAtomicGoals": 115,
            "sourceBackedAtomicGoals": 115,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 316,
            "sourceMappedToViewAtomicGoals": 316,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 316,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 316,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 316,
            "sourceFullyCoveredOriginalGoals": 316,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 103,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 28,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 740,
            "sourceMappedToViewAtomicGoals": 740,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 740,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 740,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 740,
            "sourceFullyCoveredOriginalGoals": 740,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 68,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 103,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 28,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 298,
            "sourceMappedToViewAtomicGoals": 298,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 298,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 298,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 298,
            "sourceFullyCoveredOriginalGoals": 298,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 75,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 319,
            "sourceMappedToViewAtomicGoals": 319,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 319,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 319,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 319,
            "sourceFullyCoveredOriginalGoals": 319,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 25,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 169,
            "sourceMappedToViewAtomicGoals": 169,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 169,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 169,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 169,
            "sourceFullyCoveredOriginalGoals": 169,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 21,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 578,
            "sourceMappedToViewAtomicGoals": 578,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 578,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 578,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 578,
            "sourceFullyCoveredOriginalGoals": 578,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 261,
            "sourceMappedToViewAtomicGoals": 261,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 261,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 261,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 261,
            "sourceFullyCoveredOriginalGoals": 261,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 21,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 813,
            "sourceMappedToViewAtomicGoals": 813,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 813,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 813,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 813,
            "sourceFullyCoveredOriginalGoals": 813,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 23,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 888,
            "sourceMappedToViewAtomicGoals": 888,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 888,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 888,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 888,
            "sourceFullyCoveredOriginalGoals": 888,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 23,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 880,
            "sourceMappedToViewAtomicGoals": 880,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 880,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 880,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 880,
            "sourceFullyCoveredOriginalGoals": 880,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 16,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 264,
            "sourceMappedToViewAtomicGoals": 264,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 264,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 264,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 264,
            "sourceFullyCoveredOriginalGoals": 264,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 16,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 105,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 30,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 906,
            "sourceMappedToViewAtomicGoals": 906,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 906,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 906,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 906,
            "sourceFullyCoveredOriginalGoals": 906,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 16,
            "atomicCoveragePercent": 65.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 26,
        "completeSources": 26,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 4,
        "totalSteps": 4,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "297da4af-e255-5cc7-1e19-5749e598a2c9",
            "title": "DE-BB · Latein Oberstufe (Brandenburg, GOST 2025 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB-BE/latein/source-extraction/DE_BB_LATEIN_SEKII_GOST2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-GOST-LATEIN-SEKII-2025",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Berlin-Brandenburg Teil C Latein, 2025",
                "path": "curricula/DE/Gymnasium/input/BB-BE/latein/Teil_C_RLP_GOST_2025_Latein.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2025/Teil_C_RLP_GOST_2025_Latein.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 140,
            "passages": 21,
            "mappedSourceGoals": 140,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 79,
            "partialMappings": 61,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Berlin-Brandenburg Sek-II-Latein enthält abschlussorientierte Standards, spätbeginnenden Lateinunterricht und Q-Phasen-Themenfelder; die Extraktion liegt im erwartbaren Korridor.",
              "status": "accepted",
              "rationale": "Berlin-Brandenburg Sek-II-Latein enthält abschlussorientierte Standards, spätbeginnenden Lateinunterricht und Q-Phasen-Themenfelder; die Extraktion liegt im erwartbaren Korridor."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.778571428571428,
              "p90Words": 17,
              "maxWords": 38,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche PDF-Datei liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB-BE/latein/Teil_C_RLP_GOST_2025_Latein.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Passage-Gruppen aus amtlicher PDF-Fassung extrahiert",
                    "passed": true,
                    "details": "21 Passage-Gruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Kompetenzstandards und Themenfeldern erzeugt",
                    "passed": true,
                    "details": "140 Source-Ziele"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "ohne fehlende Passage"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "140 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median 49%. Kritisch gepruefte Abweichung: Berlin-Brandenburg Sek-II-Latein enthält abschlussorientierte Standards, spätbeginnenden Lateinunterricht und Q-Phasen-Themenfelder; die Extraktion liegt im erwartbaren Korridor."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "140/140"
                  },
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e2f87de7-b122-5134-453e-f856efa1d75b",
            "title": "DE-BB · Latein Sekundarstufe I (Brandenburg, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB-BE/latein/source-extraction/DE_BB_LATEIN_SEKI_RLP2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-RLP-LATEIN-SEKI-2015",
                "title": "Rahmenlehrplan Berlin-Brandenburg Teil C Latein, Jahrgangsstufen 5-10, 2015",
                "path": "curricula/DE/Gymnasium/input/BB-BE/latein/Teil_C_Latein_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Latein_2015_11_10.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 176,
            "passages": 8,
            "mappedSourceGoals": 176,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 18,
            "partialMappings": 158,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Berlin-Brandenburg Sek-I-Latein enthält tabellarische Niveaustufenstandards und Themen-/Inhaltslisten; die Extraktion liegt im erwartbaren Korridor für einen gemeinsamen RLP-Fachteil.",
              "status": "accepted",
              "rationale": "Berlin-Brandenburg Sek-I-Latein enthält tabellarische Niveaustufenstandards und Themen-/Inhaltslisten; die Extraktion liegt im erwartbaren Korridor für einen gemeinsamen RLP-Fachteil."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.965909090909092,
              "p90Words": 19,
              "maxWords": 48,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-bb-latin-seki-005-9895d411",
                  "words": 48,
                  "text": "eine eingeführte Vokabel einer Wortart, ein eingeführtes Nomen oder Pronomen einer Deklination und einem Genus sowie ein eingeführtes Verb einer Konjugation ..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche PDF-Datei liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB-BE/latein/Teil_C_Latein_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Passage-Gruppen aus amtlicher PDF-Fassung extrahiert",
                    "passed": true,
                    "details": "8 Passage-Gruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Kompetenzstandards und Themenfeldern erzeugt",
                    "passed": true,
                    "details": "176 Source-Ziele"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "ohne fehlende Passage"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "176/176"
                  },
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9e8c922f-b9d9-5bfd-7004-1631a762ca47",
            "title": "DE-BE · Latein Oberstufe (Berlin, GOST 2025 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB-BE/latein/source-extraction/DE_BE_LATEIN_SEKII_GOST2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-GOST-LATEIN-SEKII-2025",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Berlin-Brandenburg Teil C Latein, 2025",
                "path": "curricula/DE/Gymnasium/input/BB-BE/latein/Teil_C_RLP_GOST_2025_Latein.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2025/Teil_C_RLP_GOST_2025_Latein.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 140,
            "passages": 21,
            "mappedSourceGoals": 140,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 79,
            "partialMappings": 61,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Berlin-Brandenburg Sek-II-Latein enthält abschlussorientierte Standards, spätbeginnenden Lateinunterricht und Q-Phasen-Themenfelder; die Extraktion liegt im erwartbaren Korridor.",
              "status": "accepted",
              "rationale": "Berlin-Brandenburg Sek-II-Latein enthält abschlussorientierte Standards, spätbeginnenden Lateinunterricht und Q-Phasen-Themenfelder; die Extraktion liegt im erwartbaren Korridor."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.778571428571428,
              "p90Words": 17,
              "maxWords": 38,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche PDF-Datei liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB-BE/latein/Teil_C_RLP_GOST_2025_Latein.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Passage-Gruppen aus amtlicher PDF-Fassung extrahiert",
                    "passed": true,
                    "details": "21 Passage-Gruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Kompetenzstandards und Themenfeldern erzeugt",
                    "passed": true,
                    "details": "140 Source-Ziele"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "ohne fehlende Passage"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "140 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median 49%. Kritisch gepruefte Abweichung: Berlin-Brandenburg Sek-II-Latein enthält abschlussorientierte Standards, spätbeginnenden Lateinunterricht und Q-Phasen-Themenfelder; die Extraktion liegt im erwartbaren Korridor."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "140/140"
                  },
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9857a6d9-7e92-59bd-77f7-f445f3bc143d",
            "title": "DE-BE · Latein Sekundarstufe I (Berlin, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB-BE/latein/source-extraction/DE_BE_LATEIN_SEKI_RLP2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-BE-RLP-LATEIN-SEKI-2015",
                "title": "Rahmenlehrplan Berlin-Brandenburg Teil C Latein, Jahrgangsstufen 5-10, 2015",
                "path": "curricula/DE/Gymnasium/input/BB-BE/latein/Teil_C_Latein_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Latein_2015_11_10.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 176,
            "passages": 8,
            "mappedSourceGoals": 176,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 18,
            "partialMappings": 158,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Berlin-Brandenburg Sek-I-Latein enthält tabellarische Niveaustufenstandards und Themen-/Inhaltslisten; die Extraktion liegt im erwartbaren Korridor für einen gemeinsamen RLP-Fachteil.",
              "status": "accepted",
              "rationale": "Berlin-Brandenburg Sek-I-Latein enthält tabellarische Niveaustufenstandards und Themen-/Inhaltslisten; die Extraktion liegt im erwartbaren Korridor für einen gemeinsamen RLP-Fachteil."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.965909090909092,
              "p90Words": 19,
              "maxWords": 48,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-be-latin-seki-005-9895d411",
                  "words": 48,
                  "text": "eine eingeführte Vokabel einer Wortart, ein eingeführtes Nomen oder Pronomen einer Deklination und einem Genus sowie ein eingeführtes Verb einer Konjugation ..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche PDF-Datei liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB-BE/latein/Teil_C_Latein_2015_11_10.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Passage-Gruppen aus amtlicher PDF-Fassung extrahiert",
                    "passed": true,
                    "details": "8 Passage-Gruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Kompetenzstandards und Themenfeldern erzeugt",
                    "passed": true,
                    "details": "176 Source-Ziele"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "ohne fehlende Passage"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "176/176"
                  },
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e2293fdd-9790-5501-9b1b-b10117637e05",
            "title": "Latein Gymnasium (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Latein",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BW/latein/source-extraction/DE_BW_LATEIN_GYMNASIUM_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BW-LATEIN-L1-2016",
                "title": "Bildungsplan 2016 Gymnasium Latein als erste Fremdsprache Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L1.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/bpExport/3232936/Lde/index.html?_finish=Erstellen&_page=0&requestMode=PDF",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BW-LATEIN-L2-2016",
                "title": "Bildungsplan 2016 Gymnasium Latein als zweite Fremdsprache Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L2.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/bpExport/3247263/Lde/index.html?_finish=Erstellen&_page=0&requestMode=PDF",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BW-LATEIN-L3-2016",
                "title": "Bildungsplan 2016 Gymnasium Latein als dritte Fremdsprache Profilfach Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L3.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/bpExport/3248432/Lde/index.html?_finish=Erstellen&_page=0&requestMode=PDF",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BW-LATEIN-L4-2016",
                "title": "Bildungsplan 2016 Gymnasium Latein als spaet beginnende Fremdsprache Wahlfach in der Oberstufe Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L4.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/bpExport/4762506/Lde/index.html?_finish=Erstellen&_page=0&requestMode=PDF",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 807,
            "passages": 87,
            "mappedSourceGoals": 807,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 807,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "807 BW-Latein-Source-Ziele aus vier amtlichen Bildungsgängen; die Groessenordnung liegt nahe am bereits importierten BY-Latein-Snapshot mit 832 Source-Zielen.",
              "status": "reviewed",
              "rationale": "Latein in Baden-Wuerttemberg besteht aus L1, L2, L3 und spaet beginnendem Latein. Die hohe Zahl ist deshalb plausibel und kein Hinweis auf eine Ueberextraktion."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.14374225526642,
              "p90Words": 23,
              "maxWords": 66,
              "longGoals": 5,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "61a45fb1-b2e3-51ca-1d89-8635c8b2f29e",
                  "topicCode": "L1-3.3.2",
                  "words": 66,
                  "text": "mit ihrer Kenntnis der Satzglieder und ihrer wesentlichen Füllungsarten (unter anderem für das Prädikat Verb, Prädikatsnomen mit esse; für das Subjekt Substa..."
                },
                {
                  "id": "16301171-8ab7-56d1-f681-dcb979e1329d",
                  "topicCode": "L2-3.2.2",
                  "words": 65,
                  "text": "mit ihrer Kenntnis der Satzglieder und ihrer wesentlichen Füllungsarten (unter anderem für das Prädikat Verb, Prädikatsnomen mit esse; für das Subjekt Substa..."
                },
                {
                  "id": "0c436e75-767c-57ab-c669-4546ba2747f3",
                  "topicCode": "L3-3.1.2",
                  "words": 65,
                  "text": "mit ihrer Kenntnis der wesentlichen Füllungsarten der Satzglieder (unter anderem für das Prädikat Verb, Prädikatsnomen mit esse; für das Subjekt Substantiv, ..."
                },
                {
                  "id": "ae5671f5-adc2-5b05-c1e3-e1ce05f7097a",
                  "topicCode": "L1-3.2.3",
                  "words": 49,
                  "text": "weitere verbale und nominale Formen analysieren (Indikativ: Futur I und II, Plusquamperfekt, Konjunktiv: Präsens, Imperfekt, Perfekt, Plusquamperfekt, Partiz..."
                },
                {
                  "id": "77ddbb00-5911-5803-d675-a375e24c5ca0",
                  "topicCode": "L2-3.1.2",
                  "words": 48,
                  "text": "wichtige semantische Funktionen von Kasus ohne Präpositionen unterscheiden und adäquat wiedergeben: genitivus possessivus, genitivus subiectivus/obiectivus, ..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "bw-latein-l1-2016-present",
                    "label": "Bildungsplan 2016 Gymnasium Latein als erste Fremdsprache Baden-Wuerttemberg liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L1.pdf"
                  },
                  {
                    "id": "bw-latein-l2-2016-present",
                    "label": "Bildungsplan 2016 Gymnasium Latein als zweite Fremdsprache Baden-Wuerttemberg liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L2.pdf"
                  },
                  {
                    "id": "bw-latein-l3-2016-present",
                    "label": "Bildungsplan 2016 Gymnasium Latein als dritte Fremdsprache Profilfach Baden-Wuerttemberg liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L3.pdf"
                  },
                  {
                    "id": "bw-latein-l4-2016-present",
                    "label": "Bildungsplan 2016 Gymnasium Latein als spaet beginnende Fremdsprache Wahlfach in der Oberstufe Baden-Wuerttemberg liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L4.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-source-passages-extracted",
                    "label": "Amtliche BW-Latein-Kompetenzpassagen extrahiert",
                    "passed": true,
                    "details": "87/87 Passagen aus L1/L2/L3/L4."
                  },
                  {
                    "id": "source-extraction-uses-official-pdfs",
                    "label": "Source-Extraction basiert auf amtlichen PDFs statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L1.pdf, curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L2.pdf, curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L3.pdf, curricula/DE/Gymnasium/input/BW/latein/BP2016BW_ALLG_GYM_L4.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus den amtlichen Kompetenznummern erzeugt",
                    "passed": true,
                    "details": "807 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "807/807 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 807/807; Mappings: 807/807; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c7eeaaa4-7c23-5ab7-8643-b7a03760cd6b",
            "title": "Latein (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Latein",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_LATEIN_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Latein",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Latein.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/latein",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 832,
            "passages": 60,
            "mappedSourceGoals": 832,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 9,
            "partialMappings": 823,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 22.329326923076923,
              "p90Words": 37,
              "maxWords": 106,
              "longGoals": 41,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "17656449-c4f8-5c30-8ae6-c6c06b7edf93",
                  "topicCode": "J5",
                  "words": 106,
                  "text": "erkennen und unterscheiden einige einfache Erscheinungen der Satzlehre, benennen sie mit Fachbegriffen und ordnen sie in ein Basissystem der Grammatik ein: S..."
                },
                {
                  "id": "36fa56f7-ed7b-5244-9b83-6b8d1c00868f",
                  "topicCode": "J6",
                  "words": 106,
                  "text": "erkennen und unterscheiden einige einfache Erscheinungen der Satzlehre, benennen sie mit Fachbegriffen und ordnen sie in ein Basissystem der Grammatik ein: S..."
                },
                {
                  "id": "7ab0d7f8-429c-5157-aa8d-11676bab5f96",
                  "topicCode": "J7",
                  "words": 98,
                  "text": "erkennen und unterscheiden weitere Erscheinungen der Satzlehre, benennen sie mit Fachbegriffen und ordnen sie in ein differenzierteres grammatikalisches Syst..."
                },
                {
                  "id": "7704d731-08d9-51cd-99f7-ade14ece3c7f",
                  "topicCode": "J8",
                  "words": 95,
                  "text": "erkennen und unterscheiden weitere Erscheinungen der Satzlehre, benennen sie mit Fachbegriffen und ordnen sie in das grammatikalische Gesamtsystem ein: Satzg..."
                },
                {
                  "id": "aaef7905-bc47-5556-b1ce-70d5057b8378",
                  "topicCode": "J6",
                  "words": 92,
                  "text": "erkennen und unterscheiden weitere Erscheinungen der Satzlehre, benennen sie mit Fachbegriffen und ordnen sie in ein differenzierteres grammatikalisches Syst..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Latein-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Latein.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Latein-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 60/60 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Latein-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "832 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "832/832 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 832/832; Mappings: 832/832; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ddc81dfa-80c8-5684-16e4-919c761a2092",
            "title": "Latein Oberstufe (Bremen, GyO Qualifikationsphase 2008 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HB/latein/source-extraction/DE_HB_LATEIN_SEKII_GYO_2008.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-GYO-LATEIN-QPHASE-2008",
                "title": "Bremen Bildungsplan Latein Gymnasiale Oberstufe Qualifikationsphase, 2008",
                "path": "curricula/DE/Gymnasium/input/HB/latein/GyO_Latein_2008.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/GyO_Latein_2008.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 64,
            "passages": 12,
            "mappedSourceGoals": 64,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 55,
            "partialMappings": 9,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Bremen Latein wird aus expliziten Aufgaben/Zielen, Themen/Inhalten und Standards der amtlichen Gymnasium-Bildungsplaene extrahiert. Die getrennte Fuehrung von 2. Fremdsprache, 3. Fremdsprache und GyO verhindert kuenstliche Verdichtung.",
              "status": "accepted",
              "rationale": "Bremen Latein wird aus expliziten Aufgaben/Zielen, Themen/Inhalten und Standards der amtlichen Gymnasium-Bildungsplaene extrahiert. Die getrennte Fuehrung von 2. Fremdsprache, 3. Fremdsprache und GyO verhindert kuenstliche Verdichtung."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.21875,
              "p90Words": 18,
              "maxWords": 31,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Bremer Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/latein/GyO_Latein_2008.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Themen- und Standardgruppen extrahiert",
                    "passed": true,
                    "details": "12 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "64 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "64 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median -32%. Kritisch gepruefte Abweichung: Bremen Latein wird aus expliziten Aufgaben/Zielen, Themen/Inhalten und Standards der amtlichen Gymnasium-Bildungsplaene extrahiert. Die getrennte Fuehrung von 2. Fremdsprache, 3. Fremdsprache und GyO verhindert kuenstliche Verdichtung."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a32e050c-f6e3-51e7-62ac-419ba2834da9",
            "title": "Latein Sekundarstufe I (Bremen, Gymnasium 2. Fremdsprache 2007 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/latein/source-extraction/DE_HB_LATEIN_SEKI_GYM_2FS_2007.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-GYM-LATEIN-2FS-2007",
                "title": "Bremen Bildungsplan Latein als zweite Fremdsprache, Gymnasium Jahrgangsstufe 6-10, 2007",
                "path": "curricula/DE/Gymnasium/input/HB/latein/Gy_Latein_2_Fremdspr_2007.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_Latein_2._Fremdspr_2007.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 73,
            "passages": 21,
            "mappedSourceGoals": 73,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 73,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Bremen Latein wird aus expliziten Aufgaben/Zielen, Themen/Inhalten und Standards der amtlichen Gymnasium-Bildungsplaene extrahiert. Die getrennte Fuehrung von 2. Fremdsprache, 3. Fremdsprache und GyO verhindert kuenstliche Verdichtung.",
              "status": "accepted",
              "rationale": "Bremen Latein wird aus expliziten Aufgaben/Zielen, Themen/Inhalten und Standards der amtlichen Gymnasium-Bildungsplaene extrahiert. Die getrennte Fuehrung von 2. Fremdsprache, 3. Fremdsprache und GyO verhindert kuenstliche Verdichtung."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.164383561643836,
              "p90Words": 18,
              "maxWords": 31,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Bremer Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/latein/Gy_Latein_2_Fremdspr_2007.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Themen- und Standardgruppen extrahiert",
                    "passed": true,
                    "details": "21 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "73 Source-Ziele"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "16f704be-1a3c-559a-3f39-a53ed9adf44b",
            "title": "Latein Sekundarstufe I (Bremen, Gymnasium 3. Fremdsprache 2007 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/latein/source-extraction/DE_HB_LATEIN_SEKI_GYM_3FS_2007.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-GYM-LATEIN-3FS-2007",
                "title": "Bremen Bildungsplan Latein als dritte Fremdsprache, Gymnasium Jahrgangsstufe 8-10, 2007",
                "path": "curricula/DE/Gymnasium/input/HB/latein/Gy_Latein_3_Fremdspr_2007.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_Latein_3._Fremdspr_2007.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 32,
            "passages": 11,
            "mappedSourceGoals": 32,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 32,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Bremen Latein wird aus expliziten Aufgaben/Zielen, Themen/Inhalten und Standards der amtlichen Gymnasium-Bildungsplaene extrahiert. Die getrennte Fuehrung von 2. Fremdsprache, 3. Fremdsprache und GyO verhindert kuenstliche Verdichtung.",
              "status": "accepted",
              "rationale": "Bremen Latein wird aus expliziten Aufgaben/Zielen, Themen/Inhalten und Standards der amtlichen Gymnasium-Bildungsplaene extrahiert. Die getrennte Fuehrung von 2. Fremdsprache, 3. Fremdsprache und GyO verhindert kuenstliche Verdichtung."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.125,
              "p90Words": 18,
              "maxWords": 29,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Bremer Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/latein/Gy_Latein_3_Fremdspr_2007.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Themen- und Standardgruppen extrahiert",
                    "passed": true,
                    "details": "11 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "32 Source-Ziele"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "fe28bda8-03f3-4c4a-8286-7fcfce4eeac1",
            "title": "Latein Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_LATEIN_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Latein Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_LATEIN.de.json.snapshot",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-latein.pdf",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 94,
            "passages": 33,
            "mappedSourceGoals": 94,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 94,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 5.882978723404255,
              "p90Words": 6,
              "maxWords": 6,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Latein-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_LATEIN.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Latein-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 33/33 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Latein-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "94 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "94/94 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 94/94; Mappings: 94/94; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a3522f15-b473-544b-a4f5-edeed3d2c64e",
            "title": "Latein Sekundarstufe I (Hamburg, Bildungsplan 2011 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/latein/source-extraction/DE_HH_LATEIN_SEKI_BILDUNGSPLAN_2011.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-BILDUNGSPLAN-ALTE-SPRACHEN-GYM-SEKI-2011",
                "title": "Hamburg Bildungsplan Gymnasium Sekundarstufe I Alte Sprachen",
                "path": "curricula/DE/Gymnasium/input/HH/latein/alte-sprachen-gym-seki-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123402/b1e4c576af201281ac001b38a929116b/alte-sprachen-gym-seki-data.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 252,
            "passages": 51,
            "mappedSourceGoals": 252,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 22,
            "partialMappings": 230,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Hamburg Latein wird aus expliziten Kompetenzanforderungen, Inhaltslisten und Modulen extrahiert. Die Zielzahl liegt im Korridor bereits gepruefter Laender mit vergleichbar detaillierten Plaenen.",
              "status": "accepted",
              "rationale": "Hamburg Latein wird aus expliziten Kompetenzanforderungen, Inhaltslisten und Modulen extrahiert. Die Zielzahl liegt im Korridor bereits gepruefter Laender mit vergleichbar detaillierten Plaenen."
            },
            "sourceGoalGranularity": {
              "averageWords": 15.305555555555555,
              "p90Words": 23,
              "maxWords": 195,
              "longGoals": 6,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "hh-latin-seki-223-dce8bf47",
                  "topicCode": "hh-latein-seki-jahrgangsstufe-10-kultur",
                  "words": 195,
                  "text": "Einführung in die antike Dichtung Thema: Wahrnehmung und Deutung der Welt durch sprachliche Gestaltung Auswahl aus verschiedenen Basisautoren bzw. -werken: C..."
                },
                {
                  "id": "hh-latin-seki-222-3ddf13f9",
                  "topicCode": "hh-latein-seki-jahrgangsstufe-10-kultur",
                  "words": 117,
                  "text": "Einführung in die antike Rhetorik Thema: Überzeugen, Überreden und Beeinflussen durch die Rede Basisautor: Cicero (z. B. Auszüge aus den Reden In Catilinam, ..."
                },
                {
                  "id": "hh-latin-seki-139-4d5964ed",
                  "topicCode": "hh-latein-seki-jahrgangsstufe-8-methodische-kompetenzen",
                  "words": 114,
                  "text": "beschreiben z.T. mit Hilfe an- hand von Einzelbeobachtungen die unterschiedliche Ausdrucks- fähigkeit von Sprachen (z. B. beim Sprachvergleich Latein– Deutsc..."
                },
                {
                  "id": "hh-latin-seki-221-00b87c75",
                  "topicCode": "hh-latein-seki-jahrgangsstufe-10-kultur",
                  "words": 65,
                  "text": "Die Wahl der Autoren richtet sich nach den gewählten Themen. Autoren und einfache Texte, die unter thematischen Gesichtspunkten und in adaptierter Form geeig..."
                },
                {
                  "id": "hh-latin-seki-152-aa99d131",
                  "topicCode": "hh-latein-seki-jahrgangsstufe-10-methodische-kompetenzen",
                  "words": 51,
                  "text": "der selbstständig fächer- übergreifend gestalten oder Zusammenhänge fächer- übergreifend darstellen, lbstständig ver- ne Methoden zur fung des eigenen ndes u..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburger Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/latein/alte-sprachen-gym-seki-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Anforderungs- und Inhaltsgruppen extrahiert",
                    "passed": true,
                    "details": "51 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "252 Source-Ziele"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "07cba4bf-c5f9-56e4-5e73-3908237fe8a1",
            "title": "Latein Studienstufe (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/latein/source-extraction/DE_HH_LATEIN_SEKII_STUDIENSTUFE_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-BILDUNGSPLAN-ALTE-SPRACHEN-STUDIENSTUFE-2022",
                "title": "Hamburg Bildungsplan Studienstufe Alte Sprachen",
                "path": "curricula/DE/Gymnasium/input/HH/latein/altesprachen-gyo-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123026/76a81e12f582a608c0a21a280e1f0d96/altesprachen-gyo-2022-data.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 326,
            "passages": 62,
            "mappedSourceGoals": 326,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 24,
            "partialMappings": 302,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Hamburg Latein wird aus expliziten Kompetenzanforderungen, Inhaltslisten und Modulen extrahiert. Die Zielzahl liegt im Korridor bereits gepruefter Laender mit vergleichbar detaillierten Plaenen.",
              "status": "accepted",
              "rationale": "Hamburg Latein wird aus expliziten Kompetenzanforderungen, Inhaltslisten und Modulen extrahiert. Die Zielzahl liegt im Korridor bereits gepruefter Laender mit vergleichbar detaillierten Plaenen."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.125766871165645,
              "p90Words": 35,
              "maxWords": 106,
              "longGoals": 7,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "hh-latin-sekii-242-a365ce6e",
                  "topicCode": "hh-latein-sekii-latein-neu-aufgenommen-themenbereich-geschichtsschreibung-s3-4-1-1-der-griff-nach-de",
                  "words": 106,
                  "text": "historische Bedeutung von Caesar und Alexander dem Großen Beitrag zur Leitperspektive W: Die Schülerinnen und Schüler setzen sich kritisch mit Herrschaft und..."
                },
                {
                  "id": "hh-latin-sekii-089-3201b8fd",
                  "topicCode": "hh-latein-sekii-themenbereich-erleben-der-welt-in-poetischer-gestaltung-s1-4-2-1-liebe-n-und-leben-i",
                  "words": 88,
                  "text": "Rezeption Beitrag zur Leitperspektive W: Die Schülerinnen und Schüler untersuchen Werte und ihre Relevanz für das Zusammenleben auf privater sowie gesellscha..."
                },
                {
                  "id": "hh-latin-sekii-307-c6a88f15",
                  "topicCode": "hh-latein-sekii-latein-neu-aufgenommen-themenbereich-politik-gesellschaft-kultur-s3-4-4-1-der-einzel",
                  "words": 84,
                  "text": "tium – negotium Beitrag zur Leitperspektive W: Die Schülerinnen und Schüler reflektieren die Relevanz gesell- schaftlich-politischer Teilhabe für das eigene ..."
                },
                {
                  "id": "hh-latin-sekii-251-4707a288",
                  "topicCode": "hh-latein-sekii-latein-neu-aufgenommen-themenbereich-geschichtsschreibung-s3-4-1-2-caesar-commentari",
                  "words": 58,
                  "text": "Krise der späten Republik Beitrag zu den Leitperspektiven W und BNE: Die Schülerinnen und Schüler setzen sich kritisch mit dem Konzept des bellum iustum („ge..."
                },
                {
                  "id": "hh-latin-sekii-206-0a17001c",
                  "topicCode": "hh-latein-sekii-themenbereich-politik-gesellschaft-kultur-s1-4-4-5-cicero-politische-reden-struktur-",
                  "words": 55,
                  "text": "Rhetorik in der Gegenwart Beitrag zur Leitperspektive W: Die Auseinandersetzung mit der Krise der römischen Republik sowie der Entwicklung zum Bürgerkrieg er..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburger Bildungsplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/latein/altesprachen-gyo-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Anforderungs- und Inhaltsgruppen extrahiert",
                    "passed": true,
                    "details": "62 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "326 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "326 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median 247%. Kritisch gepruefte Abweichung: Hamburg Latein wird aus expliziten Kompetenzanforderungen, Inhaltslisten und Modulen extrahiert. Die Zielzahl liegt im Korridor bereits gepruefter Laender mit vergleichbar detaillierten Plaenen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9a9099a4-e696-5c38-b035-df297d4705d7",
            "title": "Latein Oberstufe (Mecklenburg-Vorpommern, Rahmenplan 2019 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/latein/source-extraction/DE_MV_LATEIN_SEKII_GYO_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-LATEIN-SEKII-GYO-2019",
                "title": "Mecklenburg-Vorpommern Rahmenplan Latein Gymnasiale Oberstufe, 2019",
                "path": "curricula/DE/Gymnasium/input/MV/latein/RP_LAT_SEK2.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_LAT_SEK2.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 93,
            "passages": 9,
            "mappedSourceGoals": 93,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 74,
            "partialMappings": 19,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Der MV-Sek-II-Rahmenplan 2019 ist das aktuelle Oberstufen-Referenzdokument fuer Latein. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet.",
              "status": "accepted",
              "rationale": "Der MV-Sek-II-Rahmenplan 2019 ist das aktuelle Oberstufen-Referenzdokument fuer Latein. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.591397849462366,
              "p90Words": 16,
              "maxWords": 349,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-mv-latein-sekii-gyo-2019-004-1cd97f61",
                  "topicCode": "de-mv-latein-sekii-gyo-2019-qualifikationsphase-abschlussbezogene-standards",
                  "words": 349,
                  "text": "Kompetenzbereich fachspezifische Methoden: Dazu zählen fachliche Arbeitsverfahren und Lernstrategien, die Nutzung fachspezifischer Hilfsmittel, vielfältige E..."
                },
                {
                  "id": "de-mv-latein-sekii-gyo-2019-003-ed7c8c7e",
                  "topicCode": "de-mv-latein-sekii-gyo-2019-qualifikationsphase-abschlussbezogene-standards",
                  "words": 83,
                  "text": "Kompetenzbereich Kultur: Die Kompetenzen zielen auf die Einordnung von Texten in einen kulturellen Kontext ihrer Entstehung in der Antike ab. Die Kenntnisse ..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches MV-Latein-Rahmenplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/latein/RP_LAT_SEK2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Inhalts- und Kenntnispassagen extrahiert",
                    "passed": true,
                    "details": "9 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen MV-Latein-Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "93 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "93 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median -1%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "56c07fbd-5e62-5ab2-1730-42d34cc4cbd5",
            "title": "Latein Sekundarstufe I (Mecklenburg-Vorpommern, Rahmenplan 2025 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/latein/source-extraction/DE_MV_LATEIN_SEKI_GYM_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-LATEIN-SEKI-GYM-2025",
                "title": "Mecklenburg-Vorpommern Rahmenplan Latein Jahrgangsstufen 5-10 Sekundarstufe I, 2025",
                "path": "curricula/DE/Gymnasium/input/MV/latein/RP_Lat_5-10_Sek_I_2025.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_Lat_5-10_Sek_I_2025.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 168,
            "passages": 17,
            "mappedSourceGoals": 168,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 168,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Der neue MV-Rahmenplan 2025 ist der aktuelle aufwachsende Sek-I-Lehrplan. Auslaufende Alt-PDFs 5/6 und 7-10 sind archiviert, aber nicht als aktuelles Mapping-Inventar verdoppelt. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet.",
              "status": "accepted",
              "rationale": "Der neue MV-Rahmenplan 2025 ist der aktuelle aufwachsende Sek-I-Lehrplan. Auslaufende Alt-PDFs 5/6 und 7-10 sind archiviert, aber nicht als aktuelles Mapping-Inventar verdoppelt. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.833333333333334,
              "p90Words": 21,
              "maxWords": 36,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches MV-Latein-Rahmenplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/latein/RP_Lat_5-10_Sek_I_2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Inhalts- und Kenntnispassagen extrahiert",
                    "passed": true,
                    "details": "17 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen MV-Latein-Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "168 Source-Ziele"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "af72636d-b99e-5e4c-f3c5-55c8a0c106bb",
            "title": "Latein Oberstufe (Niedersachsen, KC 2018 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/latein/source-extraction/DE_NI_LATEIN_SEKII_KC2018.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-LATEIN-SEKII-2018",
                "title": "Niedersachsen Kerncurriculum Latein Gymnasiale Oberstufe 2018",
                "path": "curricula/DE/Gymnasium/input/NI/latein/la_go_kc_druck_2018.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=212",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 345,
            "passages": 15,
            "mappedSourceGoals": 345,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 82,
            "partialMappings": 263,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek II weist Einfuehrungsphase, Profil A, Profil B, Basiskompetenzen und 24 profilbezogene Leitthemen explizit aus. Die Zielzahl ist deshalb hoch und wird gegen die amtlichen Kompetenzbullets statt gegen zusammenfassende Themenlisten gezaehlt.",
              "status": "reviewed",
              "rationale": "Die Source-Ziel-Anzahl wurde kritisch gegen die Struktur der amtlichen NI-KC-PDFs geprueft; gezaehlt werden nur Kompetenzbullets, keine Inhaltslisten."
            },
            "sourceGoalGranularity": {
              "averageWords": 16.684057971014493,
              "p90Words": 31,
              "maxWords": 128,
              "longGoals": 18,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "5c9b8490-d38d-5ec2-fdd3-24bcd93d3f46",
                  "topicCode": "SekII-qualifikationsphase-profil-b-kulturkompetenz",
                  "words": 128,
                  "text": "erläutern folgende Aspekte der stoischen Ethik: o Das stoische Menschenideal ist das des Weisen (sapiens), der frei von Fehlhaltungen (vitia) und unbeeinträc..."
                },
                {
                  "id": "7199c47d-73db-5eba-eb34-257dc6b44829",
                  "topicCode": "SekII-einfuehrungsphase-neu-beginnend-sprachkompetenz-latein-als-fremdsprache-latein-lernen",
                  "words": 89,
                  "text": "geben die Paradigmen wieder: o der Substantive der 1. 5. Deklination (erkennen bei der 3. Deklination auch -ium als Gen. Pl.), o der Adjektive der 1. 3. Dekl..."
                },
                {
                  "id": "bdc173c0-42f1-5bb3-e852-a2b5d2d9e2e1",
                  "topicCode": "SekII-einfuehrungsphase-neu-beginnend-sprachkompetenz-latein-als-fremdsprache-latein-lernen",
                  "words": 68,
                  "text": "vergleichen das Phänomen AcI im Lateinischen und im Deutschen und benennen die Grenzen der wörtlichen Übertragung. Latein als Verständigungsmittel Anders als..."
                },
                {
                  "id": "3a445577-aecf-509f-f710-412add8b7c06",
                  "topicCode": "SekII-einfuehrungsphase-neu-beginnend-textkompetenz",
                  "words": 65,
                  "text": "fassen ihre Beobachtungen zu einem vorläufigen Textverständnis zusammen und belegen diese. Übersetzen Übersetzen ist ein anspruchsvoller kreativer Vorgang. D..."
                },
                {
                  "id": "5963a09b-7b8b-5782-c98a-8f08425e66e2",
                  "topicCode": "SekII-qualifikationsphase-profil-a-kulturkompetenz",
                  "words": 65,
                  "text": "nennen und erläutern zentrale Aspekte der stoischen Ethik: o Vernunft (ratio) als Proprium des Menschen sowie als herrschenden und göttlichen Teil seiner See..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NI-Latein-KC-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/latein/la_go_kc_druck_2018.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten NI-Latein-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "15/15 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NI/latein/la_go_kc_druck_2018.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen NI-Latein-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "345 Source-Ziele; Mindestplausibilitaet: 220."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "passages-have-source-goals",
                    "label": "Jede Originalpassage hat Source-Ziele",
                    "passed": true,
                    "details": "Ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "345 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median 267%. Kritisch gepruefte Abweichung: NI Sek II weist Einfuehrungsphase, Profil A, Profil B, Basiskompetenzen und 24 profilbezogene Leitthemen explizit aus. Die Zielzahl ist deshalb hoch und wird gegen die amtlichen Kompetenzbullets statt gegen zusammenfassende Themenlisten gezaehlt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "345 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "345/345 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 345/345; Mappings: 345/345; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a46b7e09-8f6d-507c-a513-90fe67eed6ec",
            "title": "Latein Sekundarstufe I (Niedersachsen, KC 2017 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/latein/source-extraction/DE_NI_LATEIN_SEKI_KC2017.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-KC-LATEIN-SEKI-2017",
                "title": "Niedersachsen Kerncurriculum Latein Gymnasium Schuljahrgaenge 5-10 2017",
                "path": "curricula/DE/Gymnasium/input/NI/latein/la_gym_si_kc_druck_2017.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=196",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 395,
            "passages": 10,
            "mappedSourceGoals": 395,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 113,
            "partialMappings": 282,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek I ist ein tabellarisches KC mit Kompetenzspalten fuer Schuljahrgang 7, 9 und 10 sowie gesondertem Einstieg ab Schuljahrgang 8. Die Zielzahl wird nach dreispaltiger Tabellenextraktion gegen die amtlichen Kompetenzbullets plausibilisiert.",
              "status": "reviewed",
              "rationale": "Die Source-Ziel-Anzahl wurde kritisch gegen die Struktur der amtlichen NI-KC-PDFs geprueft; gezaehlt werden nur Kompetenzbullets, keine Inhaltslisten."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.941772151898734,
              "p90Words": 24,
              "maxWords": 59,
              "longGoals": 10,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "75694231-79e0-58f8-e67d-c8b1d41ca12c",
                  "topicCode": "SekI-latein-ab-schuljahrgang-6-syntax",
                  "words": 59,
                  "text": "identifizieren und benennen als Füllungsmöglichkeiten der Satzglieder: o Substantiv im Nominativ o Subjekt in Personalendung ausgedrückt o einteiliges Prädik..."
                },
                {
                  "id": "80d62fa1-c03f-58fe-f119-2decf96091b6",
                  "topicCode": "SekI-latein-ab-schuljahrgang-8-syntax",
                  "words": 59,
                  "text": "identifizieren und benennen als Füllungsmöglichkeiten der Satzglieder: o Substantiv im Nominativ o Subjekt in Personalendung ausgedrückt o einteiliges Prädik..."
                },
                {
                  "id": "8597f7af-ca37-5b92-c030-d89186f4f5a9",
                  "topicCode": "SekI-latein-ab-schuljahrgang-8-textkompetenz-latein-ab-schuljahrgang-8-latein-ab-schuljahrgang-8",
                  "words": 58,
                  "text": "setzen den Inhalt des übersetzten Textes gestaltend um, z. B. durch Verwendung zentraler Aspekte des Textes in Auseinandersetzung mit anderen Positionen (z. ..."
                },
                {
                  "id": "fc2a1102-49cb-5b55-ecc4-b06292f03545",
                  "topicCode": "SekI-latein-ab-schuljahrgang-6-syntax",
                  "words": 57,
                  "text": "vergleichen das lateinische Prädikativum mit der deutschen Umsetzung. hen wird im Lateinunterricht eine aktive lateinische Sprachkompetenz nicht angestrebt (..."
                },
                {
                  "id": "e0fa22b6-d115-5656-1fea-a2d4199b27ec",
                  "topicCode": "SekI-latein-ab-schuljahrgang-8-syntax",
                  "words": 57,
                  "text": "vergleichen das Phänomen AcI im Lateinischen und im Deutschen und benennen die Grenzen der wörtlichen Übertragung. Latein als Verständigungsmittel Anders als..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NI-Latein-KC-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/latein/la_gym_si_kc_druck_2017.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten NI-Latein-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "10/10 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NI/latein/la_gym_si_kc_druck_2017.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen NI-Latein-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "395 Source-Ziele; Mindestplausibilitaet: 180."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl wurde kritisch plausibilisiert",
                    "passed": true,
                    "details": "NI Sek I ist ein tabellarisches KC mit Kompetenzspalten fuer Schuljahrgang 7, 9 und 10 sowie gesondertem Einstieg ab Schuljahrgang 8. Die Zielzahl wird nach dreispaltiger Tabellenextraktion gegen die amtlichen Kompetenzbullets plausibilisiert."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "passages-have-source-goals",
                    "label": "Jede Originalpassage hat Source-Ziele",
                    "passed": true,
                    "details": "Ohne Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "395 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "395/395 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 395/395; Mappings: 395/395; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "bfd2e817-5a88-509d-f120-b6414fd60d7f",
            "title": "Latein Sekundarstufe I (Nordrhein-Westfalen, KLP 2019 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NW/latein/source-extraction/DE_NW_LATEIN_SEKI_KLP2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-KLP-LATEIN-SEKI-2019",
                "title": "Nordrhein-Westfalen Kernlehrplan Latein Sekundarstufe I Gymnasium 2019",
                "path": "curricula/DE/Gymnasium/input/NW/latein/g9_l_klp_3402_2019_06_23_0.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_l_klp_3402_2019_06_23_0.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 94,
            "passages": 18,
            "mappedSourceGoals": 94,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 94,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NRW Sek I konsolidiert Latein als zweite Fremdsprache, Latein ab Jahrgangsstufe 5 und Latein als dritte Fremdsprache in einem KLP. Die geringere Zielzahl gegenueber BW ist plausibel, weil BW vier getrennte Bildungsgang-PDFs mit wiederholten Kompetenzlisten fuehrt.",
              "status": "reviewed",
              "rationale": "Die Source-Ziel-Anzahl wurde kritisch gegen die Struktur der amtlichen NRW-KLP-PDFs geprueft; gezaehlt werden nur Kompetenzbullets, keine Inhaltslisten."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.861702127659575,
              "p90Words": 19,
              "maxWords": 35,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NRW-Latein-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/latein/g9_l_klp_3402_2019_06_23_0.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten NRW-Latein-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "18/18 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NW/latein/g9_l_klp_3402_2019_06_23_0.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen NRW-Latein-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "94 Source-Ziele; Mindestplausibilitaet: 80."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl wurde kritisch plausibilisiert",
                    "passed": true,
                    "details": "NRW Sek I konsolidiert Latein als zweite Fremdsprache, Latein ab Jahrgangsstufe 5 und Latein als dritte Fremdsprache in einem KLP. Die geringere Zielzahl gegenueber BW ist plausibel, weil BW vier getrennte Bildungsgang-PDFs mit wiederholten Kompetenzlisten fuehrt."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "passages-have-source-goals",
                    "label": "Jede Originalpassage hat Source-Ziele",
                    "passed": true,
                    "details": "Ohne Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "94 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "94/94 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 94/94; Mappings: 94/94; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "558fd184-a933-5225-b041-f66bca7726d1",
            "title": "Lateinisch Oberstufe (Nordrhein-Westfalen, KLP 2013 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/latein/source-extraction/DE_NW_LATEIN_SEKII_KLP2013.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-KLP-LATEIN-SEKII-2013",
                "title": "Nordrhein-Westfalen Kernlehrplan Lateinisch Gymnasiale Oberstufe 2013",
                "path": "curricula/DE/Gymnasium/input/NW/latein/klp_gost_lateinisch.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/klp_gost_lateinisch.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 204,
            "passages": 36,
            "mappedSourceGoals": 204,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 204,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NRW Sek II enthaelt fortgefuehrtes und neu einsetzendes Latein, jeweils mit EF/Q-Progression und inhaltsfeldbezogenen Kompetenzlisten. Die Zielzahl liegt deutlich ueber HE Sek II, weil NRW mehr Kursvarianten explizit ausweist.",
              "status": "reviewed",
              "rationale": "Die Source-Ziel-Anzahl wurde kritisch gegen die Struktur der amtlichen NRW-KLP-PDFs geprueft; gezaehlt werden nur Kompetenzbullets, keine Inhaltslisten."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.57843137254902,
              "p90Words": 21,
              "maxWords": 31,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NRW-Latein-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/latein/klp_gost_lateinisch.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten NRW-Latein-Kompetenzpassagen wurden extrahiert",
                    "passed": true,
                    "details": "36/36 Passagegruppen."
                  },
                  {
                    "id": "official-source-extraction",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NW/latein/klp_gost_lateinisch.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen NRW-Latein-Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "204 Source-Ziele; Mindestplausibilitaet: 150."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "passages-have-source-goals",
                    "label": "Jede Originalpassage hat Source-Ziele",
                    "passed": true,
                    "details": "Ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "204 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median 117%. Kritisch gepruefte Abweichung: NRW Sek II enthaelt fortgefuehrtes und neu einsetzendes Latein, jeweils mit EF/Q-Progression und inhaltsfeldbezogenen Kompetenzlisten. Die Zielzahl liegt deutlich ueber HE Sek II, weil NRW mehr Kursvarianten explizit ausweist."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "204 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "204/204 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 204/204; Mappings: 204/204; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "d11d20b1-e244-5c14-07e9-8901abd2024a",
            "title": "Latein Oberstufe (Rheinland-Pfalz, Lehrplan 1998 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/latein/source-extraction/DE_RP_LATEIN_SEKII_GYO_1998.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-LATEIN-SEKII-GYO-1998",
                "title": "Rheinland-Pfalz Lehrplan Latein Gymnasiale Oberstufe, 1998",
                "path": "curricula/DE/Gymnasium/input/RP/latein/Latein_Sekundarstufe_II.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?tx_rlpbase_download%5Baction%5D=download&tx_rlpbase_download%5Bcontroller%5D=Download&tx_rlpbase_download%5Bitem%5D=56500&type=432522",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 193,
            "passages": 20,
            "mappedSourceGoals": 193,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 159,
            "partialMappings": 34,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Der RLP-Sek-II-Lehrplan ist literatur- und themenorientiert. Die Extraktion wertet alle mit \"Ziele\" markierten Themenpassagen sowie die fachspezifisch konkreten Lernbereiche aus. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet.",
              "status": "accepted",
              "rationale": "Der RLP-Sek-II-Lehrplan ist literatur- und themenorientiert. Die Extraktion wertet alle mit \"Ziele\" markierten Themenpassagen sowie die fachspezifisch konkreten Lernbereiche aus. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.642487046632125,
              "p90Words": 16,
              "maxWords": 30,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches RLP-Latein-Lehrplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/latein/Latein_Sekundarstufe_II.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Inhalts- und Kenntnispassagen extrahiert",
                    "passed": true,
                    "details": "20 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen RLP-Latein-Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "193 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "193 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median 105%. Kritisch gepruefte Abweichung: Der RLP-Sek-II-Lehrplan ist literatur- und themenorientiert. Die Extraktion wertet alle mit \"Ziele\" markierten Themenpassagen sowie die fachspezifisch konkreten Lernbereiche aus. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "6f497848-8e6e-5516-adb2-60d03e8c06b2",
            "title": "Latein Sekundarstufe I (Rheinland-Pfalz, Lehrplan 2009 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/latein/source-extraction/DE_RP_LATEIN_SEKI_GYM_2009.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-LATEIN-SEKI-GYM-2009",
                "title": "Rheinland-Pfalz Lehrplan Latein Sekundarstufe I, 2009",
                "path": "curricula/DE/Gymnasium/input/RP/latein/Latein_Sekundarstufe_I.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?tx_rlpbase_download%5Baction%5D=download&tx_rlpbase_download%5Bcontroller%5D=Download&tx_rlpbase_download%5Bitem%5D=56497&type=432522",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 620,
            "passages": 24,
            "mappedSourceGoals": 620,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 620,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Der RLP-Sek-I-Lehrplan 2009 ist nach Latein I, Latein II und Latein III getrennt. Die Extraktion erfasst die verbindlichen Standards je Bildungsgang und zaehlt reine Textvorschlaege nicht als Source-Ziele. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet.",
              "status": "accepted",
              "rationale": "Der RLP-Sek-I-Lehrplan 2009 ist nach Latein I, Latein II und Latein III getrennt. Die Extraktion erfasst die verbindlichen Standards je Bildungsgang und zaehlt reine Textvorschlaege nicht als Source-Ziele. Die Zielzahl wird aus expliziten Kompetenz-, Inhalts- und Kenntnisaussagen der amtlichen PDF-Passagen abgeleitet."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.348387096774194,
              "p90Words": 14,
              "maxWords": 132,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-rp-latein-seki-gym-2009-211-786d6ffe",
                  "topicCode": "de-rp-latein-seki-gym-2009-latein-i-erste-fremdsprache-kompetenzbereich-kultur",
                  "words": 132,
                  "text": "erkennen Unterschiede und Gemein-samkeiten zwischen antiker und moderner Kultur. Dadurch gewinnen sie auch eine Offenheit für andere und fremde Lebenseinstel..."
                },
                {
                  "id": "de-rp-latein-seki-gym-2009-443-509c3ced",
                  "topicCode": "de-rp-latein-seki-gym-2009-latein-ii-zweite-fremdsprache-kompetenzbereich-kultur",
                  "words": 113,
                  "text": "erkennen Unterschiede und Gemein-samkeiten zwischen antiker und moderner Kultur. Dadurch gewinnen sie auch eine Offenheit für andere und fremde Lebenseinstel..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches RLP-Latein-Lehrplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/latein/Latein_Sekundarstufe_I.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz-, Inhalts- und Kenntnispassagen extrahiert",
                    "passed": true,
                    "details": "24 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen RLP-Latein-Kompetenz- und Inhaltsaussagen erzeugt",
                    "passed": true,
                    "details": "620 Source-Ziele"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "5623b10b-08f8-5d90-657b-7f4e53ad0dbd",
            "title": "Latein Oberstufe (Schleswig-Holstein, Fachanforderungen 2015 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Latein",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/latein/source-extraction/DE_SH_LATEIN_SEKII_FACHANFORDERUNGEN_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-FACHANFORDERUNGEN-LATEIN-SEKI-SEKII-2015",
                "title": "Schleswig-Holstein Fachanforderungen Latein Sekundarstufe I / Sekundarstufe II",
                "path": "curricula/DE/Gymnasium/input/SH/latein/Fachanforderungen_Latein_SEK_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_Latein_SEK_barrierearm.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 190,
            "passages": 22,
            "mappedSourceGoals": 190,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 112,
            "partialMappings": 78,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SH Latein arbeitet mit wiederkehrenden Wissen-und-Können-Abschnitten und Themen-/Lektürevorgaben. Die Zielzahl wird gegen diese expliziten Kompetenz- und Inhaltsaussagen gezählt.",
              "status": "accepted",
              "rationale": "SH Latein arbeitet mit wiederkehrenden Wissen-und-Können-Abschnitten und Themen-/Lektürevorgaben. Die Zielzahl wird gegen diese expliziten Kompetenz- und Inhaltsaussagen gezählt."
            },
            "sourceGoalGranularity": {
              "averageWords": 16.45263157894737,
              "p90Words": 36,
              "maxWords": 107,
              "longGoals": 14,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "sh-latin-sekii-008-8821b893",
                  "topicCode": "sekii-fortgefuehrter-lateinunterricht-grundlegendes-niveau-sprachstrukturen-erfassen-koennen",
                  "words": 107,
                  "text": "beherrschen wichtige Erscheinungen der Formen- und Satzlehre und können ihr Wissen bei der Analyse und Wiedergabe lateinischer Sätze sinnvoll anwenden. Folge..."
                },
                {
                  "id": "sh-latin-sekii-110-2b085d3d",
                  "topicCode": "sekii-themen-fortgefuehrt-zugaenglichkeit",
                  "words": 96,
                  "text": "können – den Vorgaben des Latinums-Erlasses entsprechend – im Laufe der Oberstufe das Kleine Latinum, das Latinum und das Große Latinum erwerben. Das Kleine ..."
                },
                {
                  "id": "sh-latin-sekii-081-0290eb48",
                  "topicCode": "sekii-fortgefuehrter-lateinunterricht-erhoehtes-niveau-a-wortbedeutungen-und-sprachstrukturen-erfass",
                  "words": 83,
                  "text": "beherrschen wichtige Erscheinungen der Formen- und Satzlehre und können ihr Wissen bei der Analyse und Wiedergabe lateinischer Sätze sinnvoll anwenden. Folge..."
                },
                {
                  "id": "sh-latin-sekii-075-58219137",
                  "topicCode": "sekii-fortgefuehrter-lateinunterricht-grundlegendes-niveau-d-personale-kompetenzen",
                  "words": 82,
                  "text": "Lateinische Texte zu erfassen, ist ein diskursiver Vorgang. Er betrifft die gesamte Lerngruppe, die sich über das rechte Verständnis eines Wortes, eines Satz..."
                },
                {
                  "id": "sh-latin-sekii-070-cb07fb8f",
                  "topicCode": "sekii-fortgefuehrter-lateinunterricht-grundlegendes-niveau-in-folgenden-bereichen-werden-grundlegend",
                  "words": 66,
                  "text": "Die jungen Erwachsenen besitzen am Ende der Oberstufe aufgrund ihrer bisherigen Lebenserfahrung und unterstützt von Fächern wie Religion, Philosophie, Geschi..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-Fachanforderungen-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/latein/Fachanforderungen_Latein_SEK_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "22 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Wissen-und-Können-Abschnitten und Themenvorgaben erzeugt",
                    "passed": true,
                    "details": "190 Source-Ziele"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "190 Source-Ziele; Vergleich HE/BW SEKII (94); Median 94; zulässiger 30%-Median-Korridor 66-122; Abweichung vom Median 102%. Kritisch gepruefte Abweichung: SH Latein arbeitet mit wiederkehrenden Wissen-und-Können-Abschnitten und Themen-/Lektürevorgaben. Die Zielzahl wird gegen diese expliziten Kompetenz- und Inhaltsaussagen gezählt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "643d869c-3c79-5a63-20d1-ffab1c84da9a",
            "title": "Latein Sekundarstufe I (Schleswig-Holstein, Fachanforderungen 2015 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Latein",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SH/latein/source-extraction/DE_SH_LATEIN_SEKI_FACHANFORDERUNGEN_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-FACHANFORDERUNGEN-LATEIN-SEKI-SEKII-2015",
                "title": "Schleswig-Holstein Fachanforderungen Latein Sekundarstufe I / Sekundarstufe II",
                "path": "curricula/DE/Gymnasium/input/SH/latein/Fachanforderungen_Latein_SEK_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_Latein_SEK_barrierearm.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 129,
            "passages": 22,
            "mappedSourceGoals": 129,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 24,
            "partialMappings": 105,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SH Latein arbeitet mit wiederkehrenden Wissen-und-Können-Abschnitten und Themen-/Lektürevorgaben. Die Zielzahl wird gegen diese expliziten Kompetenz- und Inhaltsaussagen gezählt.",
              "status": "accepted",
              "rationale": "SH Latein arbeitet mit wiederkehrenden Wissen-und-Können-Abschnitten und Themen-/Lektürevorgaben. Die Zielzahl wird gegen diese expliziten Kompetenz- und Inhaltsaussagen gezählt."
            },
            "sourceGoalGranularity": {
              "averageWords": 20.713178294573645,
              "p90Words": 34,
              "maxWords": 107,
              "longGoals": 9,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "sh-latin-seki-082-87b1b65b",
                  "topicCode": "seki-esa-msa-esa-msa",
                  "words": 107,
                  "text": "Aufgabenstellungen und Arbeitsweisen des Lateinunterrichts fördern in besonderer Weise die Fähigkeit zu konzentrierter und genauer Arbeit sowie die Bereitsch..."
                },
                {
                  "id": "sh-latin-seki-072-58219137",
                  "topicCode": "seki-uebergang-oberstufe-latein-als-zweite-fremdsprache-d-personale-kompetenzen",
                  "words": 82,
                  "text": "Lateinische Texte zu erfassen, ist ein diskursiver Vorgang. Er betrifft die gesamte Lerngruppe, die sich über das rechte Verständnis eines Wortes, eines Satz..."
                },
                {
                  "id": "sh-latin-seki-071-c9b5a948",
                  "topicCode": "seki-uebergang-oberstufe-latein-als-zweite-fremdsprache-d-personale-kompetenzen",
                  "words": 65,
                  "text": "Lateinische Texte zu übersetzen und zu interpretieren, bedeutet, zahlreiche Einzelentscheidungen zu treffen. Eine einmal getroffene Entscheidung kann zu Fehl..."
                },
                {
                  "id": "sh-latin-seki-107-05be0190",
                  "topicCode": "seki-themen-uebergang-oberstufe-latein-als-zweite-fremdsprache",
                  "words": 63,
                  "text": "Die Lehrbuchphase endet nach drei Lernjahren. Abgesehen von einer kurzen Übergangsfrist, die wenige Wochen umfassen kann, wird das Lehrbuch im vierten Lernja..."
                },
                {
                  "id": "sh-latin-seki-009-102a5b07",
                  "topicCode": "seki-uebergang-oberstufe-latein-als-zweite-fremdsprache-sprachstrukturen-erfassen-koennen",
                  "words": 56,
                  "text": "beherrschen wichtige Erscheinungen der Formen- und Satzlehre und können ihr Wissen bei der Analyse und Wiedergabe lateinischer Sätze sinnvoll anwenden. Folge..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-Fachanforderungen-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/latein/Fachanforderungen_Latein_SEK_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passage-groups-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "22 Passagegruppen"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Wissen-und-Können-Abschnitten und Themenvorgaben erzeugt",
                    "passed": true,
                    "details": "129 Source-Ziele"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "all-source-goals-covered",
                    "label": "Alle Source-Ziele sind inhaltlich durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "0 explizite Canonical-Gaps"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "6cf7b50f-73e1-5452-5b65-0d5eec848f77",
            "title": "Latein Gymnasium (Saarland, amtliche G9/GOS Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Latein",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/SL/latein/source-extraction/DE_SL_LATEIN_GYMNASIUM_OFFICIAL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-LATEIN-G9-5-6-2023",
                "title": "Saarland Lehrplan Latein Gymnasium G9 Klassenstufen 5 und 6",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_5und6.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Latein/LP_LA_gym9_5und6.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G9-7-2023",
                "title": "Saarland Lehrplan Latein Gymnasium G9 Klassenstufe 7",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_7_2023.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Latein/LP_LA_gym9_7_2023.pdf?__blob=publicationFile&v=6",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G9-1FS-8-2024",
                "title": "Saarland Lehrplan Latein Gymnasium G9 1. Fremdsprache Klassenstufe 8",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_1.FS_8_2024.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Latein/LP_LA_gym9_1.FS_8_2024.pdf?__blob=publicationFile&v=1",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G9-1FS-9-2025",
                "title": "Saarland Lehrplan Latein Gymnasium G9 1. Fremdsprache Klassenstufe 9",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_1.FS_9_2025.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Latein/LP_LA_gym9_1.FS_9_2025.pdf?__blob=publicationFile&v=1",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G9-3FS-8-2024",
                "title": "Saarland Lehrplan Latein Gymnasium G9 3. Fremdsprache Klassenstufe 8",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_3.FS_8_2024.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Latein/LP_LA_gym9_3.FS_8_2024.pdf?__blob=publicationFile&v=5",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G9-3FS-9-2025",
                "title": "Saarland Lehrplan Latein Gymnasium G9 3. Fremdsprache Klassenstufe 9",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_3.FS_9_2025.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium_neunjaehriges_23/Latein/LP_LA_gym9_3.FS_9_2025.pdf?__blob=publicationFile&v=1",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-GOS-UEBERGREIFEND-2023",
                "title": "Saarland Lehrplan Latein Gymnasiale Oberstufe jahrgangsuebergreifende Kompetenzen 2023",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gos_uebergreifend_2023.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Latein/LP_LA_gos_%C3%BCbergreifend_2023.pdf?__blob=publicationFile&v=2",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-GOS-GK-2008",
                "title": "Saarland Lehrplan Latein Gymnasiale Oberstufe G-Kurs 2008",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LA-G-GOS-Feb2008.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Latein/LA-G-GOS-Feb2008.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-GOS-LK-2008",
                "title": "Saarland Lehrplan Latein Gymnasiale Oberstufe E-Kurs 2008",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LA-E-GOS-Feb2008.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Latein/LA-E-GOS-Feb2008.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-GOS-NEU-2006",
                "title": "Saarland Lehrplan Latein als in der Oberstufe neu einsetzende Fremdsprache 2006",
                "path": "curricula/DE/Gymnasium/input/SL/latein/LA4EinfphFeb2006.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_GOS_ab_2019_2020/Latein/LA4EinfphFeb2006.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-ANPASSUNG-2010",
                "title": "Saarland Latein Gymnasium Anpassung 2010",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_Anpassung_Gym_2010.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_Anpassung_Gym_2010.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-1FS-5-6",
                "title": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_1.FS_5u6.pdf",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_1.FS_5u6.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_1.FS_5u6.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-1FS-7",
                "title": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_1.FS_7_Gym_2003.pdf",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_1.FS_7_Gym_2003.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_1.FS_7_Gym_2003.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-1FS-8",
                "title": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_1.FS_8_Gym_2004.pdf",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_1.FS_8_Gym_2004.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_1.FS_8_Gym_2004.pdf?__blob=publicationFile&v=3",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-1FS-9-10",
                "title": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_1.FS_9u10_Gym_2005.pdf",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_1.FS_9u10_Gym_2005.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_1.FS_9u10_Gym_2005.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-2FS-6-7",
                "title": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_2.FS_6u7.pdf",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_2.FS_6u7.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_2.FS_6u7.pdf?__blob=publicationFile&v=2",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-2FS-8",
                "title": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_2.FS_8_Gym_2004.pdf",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_2.FS_8_Gym_2004.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_2.FS_8_Gym_2004.pdf?__blob=publicationFile&v=2",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-2FS-9-10",
                "title": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_2.FS_9u10_Gym_2005.pdf",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_2.FS_9u10_Gym_2005.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_2.FS_9u10_Gym_2005.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-LATEIN-G8-3FS-8-9",
                "title": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_3.FS_8u9_Gym_2004.pdf",
                "path": "curricula/DE/Gymnasium/input/SL/latein/Latein_3.FS_8u9_Gym_2004.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Latein/Latein_3.FS_8u9_Gym_2004.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 888,
            "passages": 102,
            "mappedSourceGoals": 888,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 46,
            "partialMappings": 842,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "888 SL-Latein-Source-Ziele aus sechs G9-Jahrgangs-/Fremdsprachen-Lehrplaenen und drei GOS-Kompetenz-/Kursdokumenten.",
              "status": "accepted",
              "rationale": "Die Zielzahl liegt im Korridor der bereits geprueften Latein-Bundeslaender mit mehreren Bildungsgangvarianten. Aeltere G8-Dokumente werden nicht nochmals gezaehlt, damit der aktive Bestand nicht kuenstlich aufgeblasen wird."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.52364864864865,
              "p90Words": 24,
              "maxWords": 82,
              "longGoals": 10,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "e366e028-9bb9-534a-0f6e-dfb43f97011b",
                  "topicCode": "sl-latein-g9-3fs-9-2025-ii-2-medienkompetenz-methodisch",
                  "words": 82,
                  "text": "nutzen digitale Kooperationsmöglichkeiten adressatenund situationsgerecht und wenden Verhaltensregeln bei der Kooperation reflektiert an (z. B. in Lernplattf..."
                },
                {
                  "id": "f76a1cc6-6d26-5f31-d306-154116a38f6b",
                  "topicCode": "sl-latein-g9-3fs-8-2024-i-2-morphologische-kompetenz-formenlehre-fachlich",
                  "words": 78,
                  "text": "bei der Formenbestimmung termini technici verwenden und die Form entsprechend analysieren: Konjugation: o finite Verbformen: o Bestimmung nach den Kategorien..."
                },
                {
                  "id": "06cb46e6-caca-5ec8-d263-9cfa854cbe76",
                  "topicCode": "sl-latein-g9-3fs-9-2025-i-2-morphologische-kompetenz-formenlehre-fachlich",
                  "words": 75,
                  "text": "bei der Formenbestimmung termini technici verwenden und die Form entsprechend analysieren: Konjugation: finite Verbformen: Bestimmung nach der Kategorie Genu..."
                },
                {
                  "id": "7390c884-ea9c-5042-2de8-084f22d4c7cd",
                  "topicCode": "sl-latein-g9-5-6-2023-i-2-morphologische-kompetenz-formenlehre-fachlich",
                  "words": 71,
                  "text": "bei der Formenbestimmung termini technici verwenden und die Form analysieren: Konjugation: finite Verbformen: 1. Person, 2. Person, 3. Person (grammatikalisc..."
                },
                {
                  "id": "96efd952-6910-5301-d34d-f74d043ae9cf",
                  "topicCode": "sl-latein-gos-gk-2008-bereich-sprache-und-literatur",
                  "words": 66,
                  "text": "Erweiterung und Vertiefung des Wortschatzes im politisch-gesellschaftlichen Bereich (z.B. imperium, edictum, institutum, officium, negotium) im juristischen ..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "sl-latein-g9-5-6-2023-present",
                    "label": "Saarland Lehrplan Latein Gymnasium G9 Klassenstufen 5 und 6 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_5und6.pdf"
                  },
                  {
                    "id": "sl-latein-g9-7-2023-present",
                    "label": "Saarland Lehrplan Latein Gymnasium G9 Klassenstufe 7 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_7_2023.pdf"
                  },
                  {
                    "id": "sl-latein-g9-1fs-8-2024-present",
                    "label": "Saarland Lehrplan Latein Gymnasium G9 1. Fremdsprache Klassenstufe 8 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_1.FS_8_2024.pdf"
                  },
                  {
                    "id": "sl-latein-g9-1fs-9-2025-present",
                    "label": "Saarland Lehrplan Latein Gymnasium G9 1. Fremdsprache Klassenstufe 9 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_1.FS_9_2025.pdf"
                  },
                  {
                    "id": "sl-latein-g9-3fs-8-2024-present",
                    "label": "Saarland Lehrplan Latein Gymnasium G9 3. Fremdsprache Klassenstufe 8 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_3.FS_8_2024.pdf"
                  },
                  {
                    "id": "sl-latein-g9-3fs-9-2025-present",
                    "label": "Saarland Lehrplan Latein Gymnasium G9 3. Fremdsprache Klassenstufe 9 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gym9_3.FS_9_2025.pdf"
                  },
                  {
                    "id": "sl-latein-gos-uebergreifend-2023-present",
                    "label": "Saarland Lehrplan Latein Gymnasiale Oberstufe jahrgangsuebergreifende Kompetenzen 2023 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LP_LA_gos_uebergreifend_2023.pdf"
                  },
                  {
                    "id": "sl-latein-gos-gk-2008-present",
                    "label": "Saarland Lehrplan Latein Gymnasiale Oberstufe G-Kurs 2008 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LA-G-GOS-Feb2008.pdf"
                  },
                  {
                    "id": "sl-latein-gos-lk-2008-present",
                    "label": "Saarland Lehrplan Latein Gymnasiale Oberstufe E-Kurs 2008 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LA-E-GOS-Feb2008.pdf"
                  },
                  {
                    "id": "sl-latein-gos-neu-2006-present",
                    "label": "Saarland Lehrplan Latein als in der Oberstufe neu einsetzende Fremdsprache 2006 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/LA4EinfphFeb2006.pdf"
                  },
                  {
                    "id": "sl-latein-g8-anpassung-2010-present",
                    "label": "Saarland Latein Gymnasium Anpassung 2010 liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_Anpassung_Gym_2010.pdf"
                  },
                  {
                    "id": "sl-latein-g8-1fs-5-6-present",
                    "label": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_1.FS_5u6.pdf liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_1.FS_5u6.pdf"
                  },
                  {
                    "id": "sl-latein-g8-1fs-7-present",
                    "label": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_1.FS_7_Gym_2003.pdf liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_1.FS_7_Gym_2003.pdf"
                  },
                  {
                    "id": "sl-latein-g8-1fs-8-present",
                    "label": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_1.FS_8_Gym_2004.pdf liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_1.FS_8_Gym_2004.pdf"
                  },
                  {
                    "id": "sl-latein-g8-1fs-9-10-present",
                    "label": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_1.FS_9u10_Gym_2005.pdf liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_1.FS_9u10_Gym_2005.pdf"
                  },
                  {
                    "id": "sl-latein-g8-2fs-6-7-present",
                    "label": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_2.FS_6u7.pdf liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_2.FS_6u7.pdf"
                  },
                  {
                    "id": "sl-latein-g8-2fs-8-present",
                    "label": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_2.FS_8_Gym_2004.pdf liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_2.FS_8_Gym_2004.pdf"
                  },
                  {
                    "id": "sl-latein-g8-2fs-9-10-present",
                    "label": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_2.FS_9u10_Gym_2005.pdf liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_2.FS_9u10_Gym_2005.pdf"
                  },
                  {
                    "id": "sl-latein-g8-3fs-8-9-present",
                    "label": "Saarland Latein Gymnasium G8 Uebergangsdokument Latein_3.FS_8u9_Gym_2004.pdf liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/latein/Latein_3.FS_8u9_Gym_2004.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "active-official-source-passages-extracted",
                    "label": "Aktive amtliche SL-Latein-G9/GOS-Kompetenzpassagen extrahiert",
                    "passed": true,
                    "details": "102 Passagegruppen aus 9 aktiven Originalquellen."
                  },
                  {
                    "id": "legacy-transition-documents-not-double-counted",
                    "label": "G8-Uebergangsdokumente nicht als aktiver Zielbestand doppelt gezaehlt",
                    "passed": true,
                    "details": "Archivierte Originalquellen bleiben dokumentiert; aktive Extraktion laeuft gegen G9 und GOS."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus verbindlichen Kompetenzen und Lernzielen erzeugt",
                    "passed": true,
                    "details": "888 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 888/888; Mappings: 888/888; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "28e7adae-dc91-5e97-b196-967c72c4e6e8",
            "title": "Latein Gymnasium (Sachsen, Lehrplan 2019 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Latein",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/SN/latein/source-extraction/DE_SN_LATEIN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-LATEIN-GYMNASIUM-2019",
                "title": "Sachsen Lehrplan Gymnasium Latein 2019",
                "path": "curricula/DE/Gymnasium/input/SN/latein/lehrplan-gymnasium-latein-sachsen-2019.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/116/MLOSQ7710uwoLPeItHYx",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 880,
            "passages": 95,
            "mappedSourceGoals": 880,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 185,
            "partialMappings": 695,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "880 DE-SN-Latein-Source-Ziele aus einem amtlichen Gymnasium-PDF; die Abweichung wird akzeptiert, weil die Landesdokumente unterschiedlich granular zwischen Kompetenzstandards, Lernbereichen, Themen und Wissensbestaenden ausweisen.",
              "status": "accepted",
              "rationale": "Latein-Lehrplaene unterscheiden sich stark darin, ob Kompetenzbereiche, Sprachsystematik, Themenfelder und Wissensbestaende getrennt oder gebuendelt ausgewiesen werden. Die Extraktion zaehlt nur explizite Originalquellen-Einheiten und keine Legacy-Snapshots."
            },
            "sourceGoalGranularity": {
              "averageWords": 16.364772727272726,
              "p90Words": 33,
              "maxWords": 61,
              "longGoals": 21,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "fb1a9a50-1788-5ea4-c113-2d63df312db0",
                  "topicCode": "jahrgangsstufen-11-12-leistungskurs-lernbereich-3-texte-und-themenbereiche",
                  "words": 61,
                  "text": "Einblick gewinnen in die poetische StandortAblehnung des Epos als eigene Ausdrucksform; bestimmung des Horaz Horaz als Lyriker in der Nachfolge der Griechen ..."
                },
                {
                  "id": "28a29fcc-4949-5c40-2dd0-53143e32229c",
                  "topicCode": "jahrgangsstufen-11-12-grundkurs-dreistuendig-wahlthema-2-exilliteratur",
                  "words": 56,
                  "text": "Beurteilen wesentlicher sprachlicher Formen der Im Zentrum steht die methodische Annäherung Bewältigung von Exilsituationen durch römische an den bzw. die Au..."
                },
                {
                  "id": "c8937be6-7924-5ff8-6543-72e85e25097b",
                  "topicCode": "jahrgangsstufen-11-12-grundkurs-zweistuendig-wahlthema-2-exilliteratur",
                  "words": 55,
                  "text": "Beurteilen wesentlicher sprachlicher Formen der Im Zentrum steht die methodische Annäherung Bewältigung von Exilsituationen durch römische an den bzw. die Au..."
                },
                {
                  "id": "e3daffd8-e9d0-541c-6905-06584a6af9a1",
                  "topicCode": "jahrgangsstufen-11-12-leistungskurs-wahlthema-4-exilliteratur",
                  "words": 55,
                  "text": "Beurteilen wesentlicher sprachlicher Formen der Im Zentrum steht die methodische Annäherung Bewältigung von Exilsituationen durch römische an den bzw. die Au..."
                },
                {
                  "id": "a779c325-c145-500d-3eaa-6981d72c3d38",
                  "topicCode": "latein-als-zweite-fremdsprache-spracherwerbsphase-lernbereich-2-linguistische-grundlagen",
                  "words": 50,
                  "text": "Kennen der Kasusbedeutungen Genitiv der Zugehörigkeit, ~ der Beschaffenheit, genitivus subiectivus/obiectivus, ~ partitivus Objektsdativ, Dativ des Besitzers..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-pdf-present",
                    "label": "Amtliche PDF-Datei liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/latein/lehrplan-gymnasium-latein-sachsen-2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted",
                    "label": "Original-Lehrplanpassagen aus amtlichem Landes-PDF extrahiert",
                    "passed": true,
                    "details": "95 Passagegruppen."
                  },
                  {
                    "id": "no-legacy-snapshot-source",
                    "label": "Source-Extraction basiert auf Originalquelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/latein/lehrplan-gymnasium-latein-sachsen-2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "880 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "880/880 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 880/880; Mappings: 880/880; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e4fad9c4-3af7-5889-a27f-fff94852b098",
            "title": "Latein Gymnasium (Sachsen-Anhalt, Fachlehrplan 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Latein",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/ST/latein/source-extraction/DE_ST_LATEIN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-LATEIN-GYMNASIUM-2022",
                "title": "Sachsen-Anhalt Fachlehrplan Latein Gymnasium 2022",
                "path": "curricula/DE/Gymnasium/input/ST/latein/FLP_Lat_Gym_01082022_sw.pdf",
                "url": "https://www.bildung-lsa.de/files/b45de329c361a40a2f0a7211902d5815/FLP_Lat_Gym_01082022_sw.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 264,
            "passages": 48,
            "mappedSourceGoals": 264,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 60,
            "partialMappings": 204,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "264 DE-ST-Latein-Source-Ziele aus einem amtlichen Gymnasium-PDF; die Abweichung wird akzeptiert, weil die Landesdokumente unterschiedlich granular zwischen Kompetenzstandards, Lernbereichen, Themen und Wissensbestaenden ausweisen.",
              "status": "accepted",
              "rationale": "Latein-Lehrplaene unterscheiden sich stark darin, ob Kompetenzbereiche, Sprachsystematik, Themenfelder und Wissensbestaende getrennt oder gebuendelt ausgewiesen werden. Die Extraktion zaehlt nur explizite Originalquellen-Einheiten und keine Legacy-Snapshots."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.450757575757576,
              "p90Words": 25,
              "maxWords": 43,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-pdf-present",
                    "label": "Amtliche PDF-Datei liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/latein/FLP_Lat_Gym_01082022_sw.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted",
                    "label": "Original-Lehrplanpassagen aus amtlichem Landes-PDF extrahiert",
                    "passed": true,
                    "details": "48 Passagegruppen."
                  },
                  {
                    "id": "no-legacy-snapshot-source",
                    "label": "Source-Extraction basiert auf Originalquelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/latein/FLP_Lat_Gym_01082022_sw.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "264 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "264/264 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 264/264; Mappings: 264/264; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a7f753b6-83a1-520a-f513-b95adce3e09e",
            "title": "Latein Gymnasium (Thueringen, Lehrplan 2024 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Latein",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/TH/latein/source-extraction/DE_TH_LATEIN_GYMNASIUM_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-LATEIN-GYMNASIUM-2024",
                "title": "Thueringen Lehrplan Latein Gymnasium 2024",
                "path": "curricula/DE/Gymnasium/input/TH/latein/LP_Latein-2024.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/63127?dateiname=LP_Latein-2024.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 906,
            "passages": 159,
            "mappedSourceGoals": 906,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 258,
            "partialMappings": 648,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "906 DE-TH-Latein-Source-Ziele aus einem amtlichen Gymnasium-PDF; die Abweichung wird akzeptiert, weil die Landesdokumente unterschiedlich granular zwischen Kompetenzstandards, Lernbereichen, Themen und Wissensbestaenden ausweisen.",
              "status": "accepted",
              "rationale": "Latein-Lehrplaene unterscheiden sich stark darin, ob Kompetenzbereiche, Sprachsystematik, Themenfelder und Wissensbestaende getrennt oder gebuendelt ausgewiesen werden. Die Extraktion zaehlt nur explizite Originalquellen-Einheiten und keine Legacy-Snapshots."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.374172185430464,
              "p90Words": 11,
              "maxWords": 49,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "3d03dfc4-0dd8-538c-a57f-a7b04ca7f0be",
                  "topicCode": "sekundarstufe-i-3-3-6-ueber-sprache-sprachverwendung-und-sprachenlernen-reflektieren-selbst-und-sozialkompetenz",
                  "words": 49,
                  "text": "über die Angemessenheit sprachlicher Mittel aus eigenem Antrieb reflektieren. 4 Ziele und Inhalte des Kompetenzerwerbs: Latein als in der Qualifikationsphase..."
                }
              ]
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-pdf-present",
                    "label": "Amtliche PDF-Datei liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/latein/LP_Latein-2024.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "official-passages-extracted",
                    "label": "Original-Lehrplanpassagen aus amtlichem Landes-PDF extrahiert",
                    "passed": true,
                    "details": "159 Passagegruppen."
                  },
                  {
                    "id": "no-legacy-snapshot-source",
                    "label": "Source-Extraction basiert auf Originalquelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/latein/LP_Latein-2024.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "906 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "906/906 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 906/906; Mappings: 906/906; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-latin-crossstage",
          "label": "Sekundarstufe I/II",
          "selectedAtomicGoals": 115,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 115,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 115,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-104",
              "status": "pass",
              "summary": "Route endpoints are visible in all relevant composition views.",
              "metrics": {
                "relevantCompositionViews": 1,
                "requiredMotivationAnchors": 1,
                "requiredTerminalAutonomyGoals": 9,
                "viewsMissingMotivationAnchors": 0,
                "viewsMissingTerminalAutonomyGoals": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 9,
                "terminalAutonomyGoalsWithExamData": 9,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 176,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 8481,
            "sourceOriginalGoals": 8481,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 8481,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 8481,
            "sourceMappedToViewAtomicGoals": 8481,
            "sourceOriginalGoals": 8481,
            "sourceFullyCoveredOriginalGoals": 8481,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 75,
            "maxVisibleAtomicGoals": 115,
            "maxSourceBackedAtomicGoals": 115,
            "totalAtomicGoals": 115
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 2511 upper-secondary source-to-canonical mapping edge(s), including 36 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 26,
            "sourceGoals": 3543,
            "sourceGoalsWithCourseLevel": 3543,
            "gkLkSourceGoals": 2939,
            "lkSourceGoals": 561,
            "unspecifiedSourceGoals": 311,
            "checkedMappingEdges": 2511,
            "defaultedUnspecifiedMappingEdges": 97,
            "reviewedCourseLevelExceptions": 36,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 26,
            "peerBaselineChecks": 11,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 1,
            "leafGoals": 115,
            "atomic": 115,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 33/115 ordinary atomic goals intentionally use memorization support, 34/34 primary cards are kept with origin traces, all 5 memory goals are traced, and 33 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 115,
            "noMemoryNeeded": 82,
            "memoryRequired": 33,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 34,
            "keptCards": 34,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 1,
            "visibilityCheckedMemoryRequiredGoals": 33,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 5,
            "tracedMemoryGoals": 5,
            "untracedMemoryGoals": 0,
            "deckIds": 5,
            "deckFiles": 5,
            "cardRows": 34
          },
          "details": [
            "canonical-latin-full: audit report docs/qa-ci/status/memory-card-review-canonical-latin-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "2 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 2
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 479,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 479",
            "diagnostic finding type APV-202: 479"
          ]
        }
      ]
    },
    {
      "landscapeId": "68a8ac50-f5f5-4e24-8aa9-5e408ca01ced",
      "title": "Mathematik (Gymnasium, DE)",
      "subject": "Mathematik",
      "frameworkId": "canonical-gymnasium-math",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_MATHEMATIK.de.json",
      "maturity": "M6",
      "goals": 1038,
      "atomicGoals": 826,
      "clusterGoals": 212,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 648,
        "rawAtomicGoals": 826,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 648,
        "maxSourceBackedAtomicGoals": 648,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 9974,
        "sourceMappedToViewAtomicGoals": 9974,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 9974,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 9974,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 9974,
        "sourceFullyCoveredOriginalGoals": 9974,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 598,
            "visibleClusterGoals": 440,
            "viewAtomicGoals": 598,
            "sourceBackedAtomicGoals": 598,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 499,
            "sourceMappedToViewAtomicGoals": 499,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 499,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 499,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 499,
            "sourceFullyCoveredOriginalGoals": 499,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 627,
            "atomicCoveragePercent": 92.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 917,
            "sourceMappedToViewAtomicGoals": 917,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 917,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 917,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 917,
            "sourceFullyCoveredOriginalGoals": 917,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 777,
            "visibleAtomicGoals": 459,
            "visibleClusterGoals": 318,
            "viewAtomicGoals": 459,
            "sourceBackedAtomicGoals": 459,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 468,
            "sourceMappedToViewAtomicGoals": 468,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 468,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 468,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 468,
            "sourceFullyCoveredOriginalGoals": 468,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 365,
            "atomicCoveragePercent": 70.8,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 485,
            "sourceMappedToViewAtomicGoals": 485,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 485,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 485,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 485,
            "sourceFullyCoveredOriginalGoals": 485,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 633,
            "visibleClusterGoals": 405,
            "viewAtomicGoals": 633,
            "sourceBackedAtomicGoals": 633,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 484,
            "sourceMappedToViewAtomicGoals": 484,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 484,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 484,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 484,
            "sourceFullyCoveredOriginalGoals": 484,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 97.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 581,
            "sourceMappedToViewAtomicGoals": 581,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 581,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 581,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 581,
            "sourceFullyCoveredOriginalGoals": 581,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 753,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 442,
            "sourceMappedToViewAtomicGoals": 442,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 442,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 442,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 442,
            "sourceFullyCoveredOriginalGoals": 442,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 683,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 946,
            "visibleAtomicGoals": 609,
            "visibleClusterGoals": 337,
            "viewAtomicGoals": 609,
            "sourceBackedAtomicGoals": 609,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 620,
            "sourceMappedToViewAtomicGoals": 620,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 620,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 620,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 620,
            "sourceFullyCoveredOriginalGoals": 620,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 519,
            "atomicCoveragePercent": 94,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 972,
            "visibleAtomicGoals": 624,
            "visibleClusterGoals": 348,
            "viewAtomicGoals": 624,
            "sourceBackedAtomicGoals": 624,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 531,
            "sourceMappedToViewAtomicGoals": 531,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 531,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 531,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 531,
            "sourceFullyCoveredOriginalGoals": 531,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 673,
            "atomicCoveragePercent": 96.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 626,
            "sourceMappedToViewAtomicGoals": 626,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 626,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 626,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 626,
            "sourceFullyCoveredOriginalGoals": 626,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 682,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 565,
            "visibleClusterGoals": 473,
            "viewAtomicGoals": 565,
            "sourceBackedAtomicGoals": 565,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 588,
            "sourceMappedToViewAtomicGoals": 588,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 588,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 588,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 588,
            "sourceFullyCoveredOriginalGoals": 588,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 758,
            "atomicCoveragePercent": 87.2,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 445,
            "sourceMappedToViewAtomicGoals": 445,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 445,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 445,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 445,
            "sourceFullyCoveredOriginalGoals": 445,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 773,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 1561,
            "sourceMappedToViewAtomicGoals": 1561,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 1561,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 1561,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 1561,
            "sourceFullyCoveredOriginalGoals": 1561,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 767,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 570,
            "sourceMappedToViewAtomicGoals": 570,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 570,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 570,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 570,
            "sourceFullyCoveredOriginalGoals": 570,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 759,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 648,
            "visibleClusterGoals": 390,
            "viewAtomicGoals": 648,
            "sourceBackedAtomicGoals": 648,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 612,
            "sourceMappedToViewAtomicGoals": 612,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 612,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 612,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 612,
            "sourceFullyCoveredOriginalGoals": 612,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 771,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 1038,
            "visibleAtomicGoals": 562,
            "visibleClusterGoals": 476,
            "viewAtomicGoals": 562,
            "sourceBackedAtomicGoals": 562,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 545,
            "sourceMappedToViewAtomicGoals": 545,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 545,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 545,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 545,
            "sourceFullyCoveredOriginalGoals": 545,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 785,
            "atomicCoveragePercent": 86.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 31,
        "completeSources": 31,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 4,
        "totalSteps": 4,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "c36ba9b3-4d11-4b19-a278-cd6c3c3fcc71",
            "title": "DE-BB - Mathematik Oberstufe (Brandenburg, GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/source-extraction/DE_BB_MATHEMATIK_SEKII_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RLP_GOST_MATHEMATIK_2022",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Brandenburg, Teil C Mathematik, gueltig ab Schuljahr 2022/23",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Mathematik.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/rlp-online/c-faecher/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 196,
            "passages": 14,
            "mappedSourceGoals": 196,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 40,
            "partialMappings": 156,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.1020408163265305,
              "p90Words": 11,
              "maxWords": 19,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINAL-SOURCES",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Offizielle Originalquellen sind lokal referenziert",
                    "passed": true,
                    "details": "1 Originalquelle(n)."
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-passages-extracted",
                    "label": "Amtliche Lehrplanpassagen wurden aus offiziellen Quellen extrahiert",
                    "passed": true,
                    "details": "14 Passagen aus Standards, Inhalten und Prozesskompetenzen."
                  },
                  {
                    "id": "no-legacy-snapshot",
                    "label": "Source-Extraction basiert nicht auf Legacy-Snapshot-Zielen",
                    "passed": true,
                    "details": "Legacy-Snapshots werden nicht als Source-Extraction-Quelle verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                    "passed": true,
                    "details": "196 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "196 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -27%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "196/196 Source-Ziele reviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "54cf7ae7-21e7-4cc2-a7b8-1f7dd9df5dc1",
            "title": "DE-BB - Mathematik Sekundarstufe I (Brandenburg, RLP 1-10 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/source-extraction/DE_BB_MATHEMATIK_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RLP_1_10_MATHEMATIK_2015_2023",
                "title": "Rahmenlehrplan Berlin-Brandenburg, Teil C Mathematik Jahrgangsstufen 1-10, Fassung 23.11.2023",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Mathematik_2015_10_13_Ma_14.08.2023_Berlin_23_11.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/rlp-online/c-faecher/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 289,
            "passages": 19,
            "mappedSourceGoals": 289,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 45,
            "partialMappings": 244,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.709342560553633,
              "p90Words": 12,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINAL-SOURCES",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Offizielle Originalquellen sind lokal referenziert",
                    "passed": true,
                    "details": "1 Originalquelle(n)."
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-passages-extracted",
                    "label": "Amtliche Lehrplanpassagen wurden aus offiziellen Quellen extrahiert",
                    "passed": true,
                    "details": "19 Passagen aus Standards, Inhaltsdetails, Wahlpflicht und Prozesskompetenzen."
                  },
                  {
                    "id": "no-legacy-snapshot",
                    "label": "Source-Extraction basiert nicht auf Legacy-Snapshot-Zielen",
                    "passed": true,
                    "details": "Legacy-Snapshots werden nicht als Source-Extraction-Quelle verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                    "passed": true,
                    "details": "289 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "289 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 4%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "289/289 Source-Ziele reviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "5aafcc55-e89f-4dd5-ab17-9455e3c103b7",
            "title": "DE-BE - Mathematik Oberstufe (Berlin, GO 2014 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/source-extraction/DE_BE_MATHEMATIK_SEKII_GO_2014.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE_GO_MATHEMATIK_2014_2023",
                "title": "Rahmenlehrplan Mathematik gymnasiale Oberstufe Teil C (Berlin, 2014/2023)",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/rahmenlehrplan-mathematik_go-teil-c.pdf",
                "url": "https://www.berlin.de/sen/bildung/unterricht/faecher-rahmenlehrplaene/rahmenlehrplaene/rahmenlehrplan-mathematik_go-teil-c.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 195,
            "passages": 15,
            "mappedSourceGoals": 195,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 18,
            "partialMappings": 177,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.102564102564102,
              "p90Words": 11,
              "maxWords": 19,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINAL-SOURCES",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Offizielle Originalquellen sind lokal referenziert",
                    "passed": true,
                    "details": "1 Originalquelle(n)."
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-passages-extracted",
                    "label": "Amtliche Lehrplanpassagen wurden aus offiziellen Quellen extrahiert",
                    "passed": true,
                    "details": "15 Passagen aus Standards, Prozesskompetenzen und Inhaltsdetails; Zusatzkurse sind als deferredSourceMaterial dokumentiert."
                  },
                  {
                    "id": "no-legacy-snapshot",
                    "label": "Source-Extraction basiert nicht auf Legacy-Snapshot-Zielen",
                    "passed": true,
                    "details": "Legacy-Snapshots werden nicht als Source-Extraction-Quelle verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                    "passed": true,
                    "details": "195 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "195 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -27%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b30048d2-d649-4727-b448-988a0f86a2c2",
            "title": "DE-BE - Mathematik Sekundarstufe I (Berlin, RLP 1-10 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/source-extraction/DE_BE_MATHEMATIK_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RLP_1_10_MATHEMATIK_2015_2023",
                "title": "Rahmenlehrplan Mathematik Jahrgangsstufen 1-10 (Berlin/Brandenburg, Fassung Berlin 2023)",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Mathematik_2015_10_13_Ma_14.08.2023_Berlin_23_11.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/rlp-online/c-faecher/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 289,
            "passages": 19,
            "mappedSourceGoals": 289,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 45,
            "partialMappings": 244,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.709342560553633,
              "p90Words": 12,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINAL-SOURCES",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Offizielle Originalquellen sind lokal referenziert",
                    "passed": true,
                    "details": "1 Originalquelle(n)."
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-passages-extracted",
                    "label": "Amtliche Lehrplanpassagen wurden aus offiziellen Quellen extrahiert",
                    "passed": true,
                    "details": "19 Passagen aus Standards, Inhaltsdetails, Wahlpflicht und Prozesskompetenzen."
                  },
                  {
                    "id": "no-legacy-snapshot",
                    "label": "Source-Extraction basiert nicht auf Legacy-Snapshot-Zielen",
                    "passed": true,
                    "details": "Legacy-Snapshots werden nicht als Source-Extraction-Quelle verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                    "passed": true,
                    "details": "289 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "289 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 4%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "289/289 Source-Ziele reviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "fa8f864a-aac5-486d-8e77-40df2af038a3",
            "title": "DE-BW - Mathematik Kursstufe (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_MATHEMATIK_SEKII_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016",
                "title": "Bildungsplan 2016 Gymnasium Mathematik Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_M.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_M.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 221,
            "passages": 16,
            "mappedSourceGoals": 221,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 71,
            "partialMappings": 150,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 8.81447963800905,
              "p90Words": 13,
              "maxWords": 40,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "m1-source-document-present",
                    "label": "Amtlicher BP2016-Mathematik-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_M.pdf"
                  },
                  {
                    "id": "m1-passages-extracted",
                    "label": "Kursstufenpassagen 1.4, Prozesskompetenzen 2.1 bis 2.5 und 3.4.1 bis 3.5.5 extrahiert",
                    "passed": true,
                    "details": "16/16 Passagen."
                  },
                  {
                    "id": "m1-no-legacy-snapshot",
                    "label": "Source-Extraction basiert auf amtlichen PDF-Passagen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Snapshot-Dateien werden nur fuer den M3-Transfer der bestehenden Pilot-Bruecke verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "m2-source-goals-present",
                    "label": "Source-Ziele aus amtlichen Prozess- und Kursstufen-Kompetenznummern erzeugt",
                    "passed": true,
                    "details": "221 Source-Ziele."
                  },
                  {
                    "id": "m2-unique-source-goal-ids",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "m2-source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "m2-source-goals-are-official-competence-items",
                    "label": "Source-Ziele folgen amtlichen Kompetenznummern aus Kapitel 2, 3.4 und 3.5",
                    "passed": true,
                    "details": "60 prozessbezogene Kompetenzen plus 1 Orientierungsziel und 101 Kursstufen-Kompetenznummern aus 3.4.1 bis 3.5.5; Kompetenzen 3.4.1(3), 3.4.1(5), 3.4.1(9), 3.4.1(10), 3.4.2(3), 3.4.2(5), 3.4.2(9), 3.4.3(1), 3.4.3(4), 3.4.3(5), 3.4.3(6), 3.4.3(7), 3.4.4(2), 3.4.4(4), 3.4.4(8), 3.4.4(11), 3.4.4(12), 3.4.5(4), 3.4.5(9), 3.4.5(10), 3.5.1(4), 3.5.1(7), 3.5.1(8), 3.5.2(3), 3.5.2(7), 3.5.3(1), 3.5.3(4), 3.5.3(6), 3.5.3(8), 3.5.4(2), 3.5.4(3), 3.5.4(5), 3.5.4(8), 3.5.5(1), 3.5.5(2) und 3.5.5(3) sind in fachliche Teilziele granularisiert."
                  },
                  {
                    "id": "m2-content-goals-granularized",
                    "label": "Kursstufen-Inhaltsziele sind fachlich granularisiert",
                    "passed": true,
                    "details": "Alle 101 amtlichen Inhalts-Kompetenznummern aus 3.4/3.5 sind entweder fachlich einzeln als Source-Ziele erfasst oder in fachliche Teilziele granularisiert; der HE/BW-Abdeckungsaudit ist ein getrennt dokumentierter Curriculum-Delta."
                  },
                  {
                    "id": "m2-he-bw-sekii-canonical-gap-audit",
                    "label": "HE-Sek-II-Abdeckung gegen BW-Sek-II fachlich gegengeprüft",
                    "passed": true,
                    "details": "Kontrollierter Curriculum-Delta dokumentiert in docs/qa-ci/bw-math-sekii-he-coverage-audit.md: 111 von HE abgedeckte kanonische Sek-II-Atomziele sind nicht durch expandierte BW-Sek-II-Mappings abgedeckt. Davon 33 im BW-BP2016 nicht explizit gefunden und 78 BW-Sek-I/Stufenverschiebung oder Kursstufen-Voraussetzung. Keine verbleibenden Treffer werden mehr automatisch als BW-Sek-II-vorhanden gewertet; der Audit hat keine manuelle Restkategorie mehr."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "m3-mapping-2-fachlich-abgeschlossen",
                    "label": "MAPPING-2 fachlich abgeschlossen",
                    "passed": true,
                    "details": "MAPPING-2 ist abgeschlossen; der HE/BW-Sek-II-Abdeckungsaudit ist als Curriculum-Delta dokumentiert und blockiert die BW-Source-Ziele nicht mehr."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-valid-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Reviewed Source-Ziele: 221/221."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "221/221 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 221/221; Mappings: 221/221; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "6232b783-199c-4c50-92f2-9fb31277e619",
            "title": "Mathematik Sekundarstufe I (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_MATHEMATIK_SEKI_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016",
                "title": "Bildungsplan 2016 Gymnasium - Mathematik",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_M.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_M.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 278,
            "passages": 20,
            "mappedSourceGoals": 278,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 95,
            "partialMappings": 183,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 11.302158273381295,
              "p90Words": 18,
              "maxWords": 40,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Offizielles BW-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_M.pdf"
                  },
                  {
                    "id": "process-passages-present",
                    "label": "Prozessbezogene Kompetenzen 2.1 bis 2.5 sind als Originalpassagen erfasst",
                    "passed": true,
                    "details": "Erfasst: 5/5; fehlend: -"
                  },
                  {
                    "id": "lower-secondary-content-passages-present",
                    "label": "Inhaltsbezogene Sek-I-Abschnitte 3.1.1 bis 3.3.5 sind als Originalpassagen erfasst",
                    "passed": true,
                    "details": "Erfasst: 15/15; fehlend: -"
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Snapshot-Daten werden nicht als Passage-Extraction gewertet",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-json/DE_BAW_S_GYM_1_MATHEMATIK.de.json.snapshot bleibt nur Diagnosematerial."
                  },
                  {
                    "id": "passage-encoding-clean",
                    "label": "Encoding und mathematische Anzeigezeichen sind geprüft",
                    "passed": true,
                    "details": "20/20 Passagen geprüft; Kontrollzeichen, PDF-Font-Artefakte und formelnahe Stellen in 3.2.1, 3.2.4, 3.3.1, 3.3.3 und 3.3.4 wurden gegen das BP2016-PDF gegengeprüft."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "20/20 Originalpassagen sind extrahiert und geprüft."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Originalpassagen erzeugt",
                    "passed": true,
                    "details": "278 Source-Ziele: 60 prozessbezogene Kompetenzen aus 2.1-2.5 und 218 inhaltsbezogene Kompetenzen aus 3.1.1-3.3.5; PDF-Zwischenüberschriften wurden nicht als Zielbestandteile übernommen."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele enthalten passageId, topicCode und sourceRef."
                  },
                  {
                    "id": "source-goals-traceable-to-source-spans",
                    "label": "Source-Ziele sind in den Originalpassagen wiederauffindbar",
                    "passed": true,
                    "details": "Die sourceSpan-Felder wurden aus den nummerierten Kompetenzzeilen der persistierten Passagen erzeugt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "278 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "278/278 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 278/278; Mappings: 278/278; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c1600692-e543-5cf2-a399-6bd96e6b817f",
            "title": "DE-BY - Mathematik Gymnasium (Bayern, LehrplanPLUS Source-Extraction)",
            "jurisdiction": "DE-BY",
            "subject": "Mathematik",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_MATHEMATIK_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "JGST5",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 5",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_5.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/5/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST6",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 6",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_6.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/6/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST7",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 7",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_7.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/7/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST8",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 8",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_8.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/8/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST9",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 9",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_9.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/9/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST10",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 10",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_10.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/10/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST11",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 11",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_11.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/11/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST12_EA",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 12 erhoehtes Anforderungsniveau",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_12_eA.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/12/mathematik/regulaer",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST12_VERTIEFUNG",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 12 Vertiefungskurs",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_12_Vertiefungskurs.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/12/mathematik/vertieft",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST13_EA_TEIL1",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 13 erhoehtes Anforderungsniveau Teil 1",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_13_eA_Teil1.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/13/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "JGST13_EA_TEIL2",
                "title": "LehrplanPLUS Gymnasium Bayern - Mathematik Jahrgangsstufe 13 erhoehtes Anforderungsniveau Teil 2",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Mathematik_Jgst_13_eA_Teil2.pdf",
                "url": "https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/13/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "GK_12_13",
                "title": "LehrplanPLUS Gymnasium Bayern - Grundlegende Kompetenzen Mathematik Jahrgangsstufen 12/13",
                "path": "curricula/DE/Gymnasium/input/BY/raw/Gymnasium_Grundlegende_Kompetenzen_Jgst_12_13.pdf",
                "url": "https://www.lehrplanplus.bayern.de/jahrgangsstufenprofil/gymnasium/12/mathematik",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 468,
            "passages": 66,
            "mappedSourceGoals": 468,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 262,
            "partialMappings": 206,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 20.136752136752136,
              "p90Words": 33,
              "maxWords": 44,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche LehrplanPLUS-Mathematik-PDFs liegen lokal vor",
                    "passed": true,
                    "details": "12/12 registrierte Originalquellen vorhanden."
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Zieltragende Lernbereichspassagen M5 bis M13 sind extrahiert",
                    "passed": true,
                    "details": "Erfasst: 66/66 Passagen; Sek I: 43, Sek II: 23."
                  },
                  {
                    "id": "no-legacy-snapshot-counted",
                    "label": "Legacy-Snapshot wird nicht als Passage-Extraction gewertet",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Mathematik.json wurde nur als strukturierte Ausgangsquelle fuer die Passage-IDs genutzt; MAPPING-3 bleibt bis zur Review-Datei offen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "66/66 Passagen sind vorhanden und zieltragend."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "468 Source-Ziele: 313 Sek-I-Ziele und 155 Sek-II-Ziele; 175 zusätzliche Ziele aus fachlicher Split-Nachgranulierung."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "goal-bearing-passages-have-source-goals",
                    "label": "Jede zieltragende Passage hat Source-Ziele",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goals-granularized-from-compound-bullets",
                    "label": "Grobe LehrplanPLUS-Sammelziele wurden in fachliche Source-Ziele gesplittet",
                    "passed": true,
                    "details": "95 offizielle Bullet-Ziele wurden in 270 fachliche Source-Ziele aufgeteilt; verbleibende Ziele >45 Woerter: -."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "468 Source-Ziele; Vergleich HE/BW SEKI (278) + SEKII (221/316); Median 547; zulässiger 30%-Median-Korridor 383-710; Abweichung vom Median -14%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "468 Source-Ziele liegen nach Split-Nachgranulierung vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs reviewed."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "468/468 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 468/468; Mappings: 468/468; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ffd76109-d192-467c-b0c0-033b445f0de7",
            "title": "Mathematik Gymnasiale Oberstufe (Bremen, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HB/upper-secondary/source-extraction/DE_HB_MATHEMATIK_SEKII_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB_GYO_MATHEMATIK_2022",
                "title": "Bildungsplan Gymnasiale Oberstufe Mathematik, Bremen 2022",
                "path": "curricula/DE/Gymnasium/input/HB/GyO_Mathematik_2022.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/GyO_Mathematik_2022.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 275,
            "passages": 122,
            "mappedSourceGoals": 275,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 275,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 19.01090909090909,
              "p90Words": 35,
              "maxWords": 950,
              "longGoals": 20,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-hb-mathematik-sekii-bildungsplan-2022-hb-sekii-k6-008-b9af177115",
                  "topicCode": "HB-SEKII-K6",
                  "words": 950,
                  "text": "mündliche und schriftliche Äußerungen mit mathematischem Gehalt von anderen Personen miteinander vergleichen, sie bewerten und ggf. korrigieren 2 Leitideen e..."
                },
                {
                  "id": "de-hb-mathematik-sekii-bildungsplan-2022-hb-sekii-s3-5-001-78cc62b9c1",
                  "topicCode": "HB-SEKII-S3.5",
                  "words": 253,
                  "text": "[LK: entnehmen Daten aus Texten, Histogrammen, Tabellen und anderen Darstellungsformen, prüfen ihre Plausibilität mithilfe stochastischer Methoden, beur wahr..."
                },
                {
                  "id": "de-hb-mathematik-sekii-bildungsplan-2022-hb-sekii-a3-8-001-aec1175c07",
                  "topicCode": "HB-SEKII-A3.8",
                  "words": 139,
                  "text": "untersuchen begrenzte Wachstums- und Zerfallsprozesse [LK: und logistische Wachstumsprozesse] in Anwendungssituationen. [LK: kennen Differentialgleichungen z..."
                },
                {
                  "id": "de-hb-mathematik-sekii-bildungsplan-2022-hb-sekii-a3-6-001-3ca49a3763",
                  "topicCode": "HB-SEKII-A3.6",
                  "words": 104,
                  "text": "wenden für die unter A 3.1 [LK: und A 3.2] genannten Funktionen die folgenden Verfahren an: o einem Argument den zugehörigen Funktionswert zuordnen und umgek..."
                },
                {
                  "id": "de-hb-mathematik-sekii-bildungsplan-2022-hb-sekii-a1-12-001-3b2f19d489",
                  "topicCode": "HB-SEKII-A1.12",
                  "words": 88,
                  "text": "ermitteln in Fällen ausgehend von vorgegebenen Eigenschaften einer Funktion deren Funktionsterm. 3.2 Qualifikationsphase Für die Qualifikationsphase formulie..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Bremer Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/GyO_Mathematik_2022.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichen PDFs sind erfasst",
                    "passed": true,
                    "details": "122/122 official Bremen upper-secondary process/code passages extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte Bremer Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "122/122 official Bremen upper-secondary process/code passages extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "275 source goals from official K1-K6 process bullets and coded BM/A/S/LA/AG competency rows; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "275 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median 2%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "275 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "275/275 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 275/275; Mappings: 275/275; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c22f0777-fd82-4ad5-8306-33124017bdee",
            "title": "Mathematik Sekundarstufe I (Bremen, Bildungsplan 2006 mit 2022-Einschraenkung Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/source-extraction/DE_HB_MATHEMATIK_SEKI_BILDUNGSPLAN_2006_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB_GYM_SEKI_MATHEMATIK_2006",
                "title": "Bildungsplan Mathematik Gymnasium Jahrgangsstufe 5-10, Bremen 2006",
                "path": "curricula/DE/Gymnasium/input/HB/06-12-06_mathe_gy.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/06-12-06_mathe_gy.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "HB_GYM_SEKI_MATHEMATIK_2022_EINSCHRAENKUNG",
                "title": "Anlage Einschraenkung der Gueltigkeit des Bildungsplans Mathematik Jahrgangsstufen 5-9, Bremen 2022",
                "path": "curricula/DE/Gymnasium/input/HB/Gy_Mathe_2006_inhalt_Einschraenkungen.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_Mathe_2006_inhalt_Einschr%C3%A4nkungen.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 256,
            "passages": 11,
            "mappedSourceGoals": 256,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 76,
            "partialMappings": 180,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 9.234375,
              "p90Words": 17,
              "maxWords": 30,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Bremer Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/06-12-06_mathe_gy.pdf; curricula/DE/Gymnasium/input/HB/Gy_Mathe_2006_inhalt_Einschraenkungen.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichen PDFs sind erfasst",
                    "passed": true,
                    "details": "11/11 official Bremen Sek-I passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte Bremer Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "11/11 official Bremen Sek-I passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "256 source goals from official passage bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "256 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median -8%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "256 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "256/256 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 256/256; Mappings: 256/256; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2796fc7b-ba9d-446f-8f26-711dd6d8a9a3",
            "title": "Mathematik Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_MATHEMATIK_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "KC_GOS_2024",
                "title": "Kerncurriculum gymnasiale Oberstufe - Mathematik",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/kerncurriculum_gymnasiale_oberstufe-mathematik.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-mathematik.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 316,
            "passages": 25,
            "mappedSourceGoals": 316,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 316,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 29.329113924050635,
              "p90Words": 54,
              "maxWords": 100,
              "longGoals": 39,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "he-math-sekii-q2-2-b04-a01-f220d6d9",
                  "topicCode": "Q2.2",
                  "words": 100,
                  "text": "– einfache geometrische Körper und Figuren im Raum:\n  Beschreiben einfacher geometrischer Körper (Würfel, Quader, gerades und schiefes Prisma, gerade und sch..."
                },
                {
                  "id": "he-math-sekii-q2-2-b04-a02-5c97f504",
                  "topicCode": "Q2.2",
                  "words": 100,
                  "text": "– einfache geometrische Körper und Figuren im Raum:\n  Beschreiben einfacher geometrischer Körper (Würfel, Quader, gerades und schiefes Prisma, gerade und sch..."
                },
                {
                  "id": "he-math-sekii-q2-2-b04-a03-87ad462f",
                  "topicCode": "Q2.2",
                  "words": 100,
                  "text": "– einfache geometrische Körper und Figuren im Raum:\n  Beschreiben einfacher geometrischer Körper (Würfel, Quader, gerades und schiefes Prisma, gerade und sch..."
                },
                {
                  "id": "he-math-sekii-q2-2-b04-a04-af405e04",
                  "topicCode": "Q2.2",
                  "words": 100,
                  "text": "– einfache geometrische Körper und Figuren im Raum:\n  Beschreiben einfacher geometrischer Körper (Würfel, Quader, gerades und schiefes Prisma, gerade und sch..."
                },
                {
                  "id": "he-math-sekii-q2-2-b04-a05-6b4d67e3",
                  "topicCode": "Q2.2",
                  "words": 100,
                  "text": "– einfache geometrische Körper und Figuren im Raum:\n  Beschreiben einfacher geometrischer Körper (Würfel, Quader, gerades und schiefes Prisma, gerade und sch..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Themenfelder sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "25/25 Themenfelder; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jedes Themenfeld hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Themenfelder: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "25/25 Passagen mit Spiegelstrichtext"
                  },
                  {
                    "id": "passage-encoding-clean",
                    "label": "Umlaute/Encoding und mathematische Anzeigezeichen sind bereinigt",
                    "passed": true,
                    "details": "Auffällige Passagen: -"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-exist",
                    "label": "Aus den Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "316 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Passage",
                    "passed": true,
                    "details": "Source-Ziele ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-encoding-clean",
                    "label": "Source-Ziele enthalten keine kaputten Umlaute oder PDF-Private-Use-Zeichen",
                    "passed": true,
                    "details": "Auffällige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-mapping-entries-reference-source-goals",
                    "label": "Persistierte Mapping-Einträge referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Unbekannte Mapping-Source-Ziele: -"
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "316/316 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 316/316; Mappings: 316/316; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b167b4cd-4b78-4c84-a721-6b2adbbcab3c",
            "title": "Mathematik Sekundarstufe I (Hessen, G8/G9 Source-Extraction)",
            "jurisdiction": "DE-HE",
            "subject": "Mathematik",
            "stage": "SekI",
            "durationModels": [
              "G8",
              "G9"
            ],
            "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-extraction/DE_HE_MATHEMATIK_SEKI_KC_G8_G9.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "KC",
                "title": "Kerncurriculum Mathematik - Sekundarstufe I (Gymnasium)",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/kerncurriculum_mathematik_gymnasium.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-07/kerncurriculum_mathematik_gymnasium.pdf",
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "G8",
                "title": "Lehrplan Gymnasium G8 Mathematik",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/g8-mathematik.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g8-mathematik.pdf",
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "G9",
                "title": "Lehrplan Gymnasium G9 Mathematik",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-mathematik.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g9-mathematik.pdf",
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "LEITFADEN",
                "title": "Leitfaden Mathematik - Sekundarstufe I",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/leitfaden_mathematik_sekundarstufe_i.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-07/leitfaden_mathematik_sekundarstufe_i.pdf",
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 601,
            "passages": 89,
            "mappedSourceGoals": 601,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 601,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 8.72712146422629,
              "p90Words": 16,
              "maxWords": 60,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "he-math-seki-g8-9g-2-03-b9e18ec8",
                  "topicCode": "G8-9G.2",
                  "words": 60,
                  "text": "Satz von Cavalieri, anschauliche Begründung $\\sin$ (α), $\\cos$ (α) und $\\tan$ (α) als Längenver- Darstellung im rechtwinkligen Dreieck, Einheitskreis hältnis..."
                },
                {
                  "id": "he-math-seki-g9-10-4-01-7e67f8b5",
                  "topicCode": "G9-10.4",
                  "words": 53,
                  "text": "Trigonometrie und trigonometrische $\\sin$ α, $\\cos$ α und $\\tan$ α als Längenverhält- Darstellung im rechtwinkligen Dreieck, Einheitskreis (Winkel von 0o bis..."
                }
              ]
            },
            "durationProjectionAudit": {
              "evidenceLinks": 598,
              "evidenceByDuration": {
                "G8": 262,
                "G9": 336
              },
              "canonicalGoalsWithDurationEvidence": 251,
              "canonicalGoalsWithDifferentG8G9Evidence": 118,
              "coveredEvidenceLinks": 598,
              "uncoveredEvidenceLinks": 0
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Alle offiziellen Sek-I-Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "KC: curricula/DE/Gymnasium/input/HE/lower-secondary/kerncurriculum_mathematik_gymnasium.pdf; G8: curricula/DE/Gymnasium/input/HE/lower-secondary/g8-mathematik.pdf; G9: curricula/DE/Gymnasium/input/HE/lower-secondary/g9-mathematik.pdf; LEITFADEN: curricula/DE/Gymnasium/input/HE/lower-secondary/leitfaden_mathematik_sekundarstufe_i.pdf"
                  },
                  {
                    "id": "kc-content-passages-present",
                    "label": "KC 7.3 Schwerpunktsetzungen sind als Passagen erfasst",
                    "passed": true,
                    "details": "Erfasst: 27/27; fehlend: -"
                  },
                  {
                    "id": "kc-competency-passages-present",
                    "label": "KC 7.1/7.2/6 Kompetenzerwartungen sind als Passagen erfasst",
                    "passed": true,
                    "details": "Erfasst: 18/18; fehlend: -"
                  },
                  {
                    "id": "g8-topic-passages-present",
                    "label": "G8-Jahrgangsthemen 5G.1 bis 9G.3 sind als Originalpassagen erfasst",
                    "passed": true,
                    "details": "Erfasst: 17/17; fehlend: -"
                  },
                  {
                    "id": "g9-topic-passages-present",
                    "label": "G9-Jahrgangsthemen 5.1 bis 10.5 sind als Originalpassagen erfasst",
                    "passed": true,
                    "details": "Erfasst: 25/25; fehlend: -"
                  },
                  {
                    "id": "leitfaden-processing-policy-present",
                    "label": "Leitfaden-Beleg fuer Kerncurriculum/Fachcurriculum-Verhältnis ist erfasst",
                    "passed": true,
                    "details": "Leitfadenpassagen werden als Verarbeitungs- und Plausibilisierungsquelle geführt, nicht als eigenständige Lernzielquelle."
                  },
                  {
                    "id": "passage-encoding-clean",
                    "label": "Umlaute/Encoding und mathematische Anzeigezeichen sind bereinigt",
                    "passed": true,
                    "details": "Auffällige Artefakte: -"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "kc-content-source-goals-created",
                    "label": "Aus KC-7.3-Schwerpunktsetzungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "99 KC-Inhalts-Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goals-verbatim-in-passages",
                    "label": "Source-Ziele sind in ihren Originalpassagen wiederauffindbar",
                    "passed": true,
                    "details": "Nicht in Passage gefunden: -"
                  },
                  {
                    "id": "source-goals-verbatim-in-kc",
                    "label": "KC-Source-Ziele sind im Kerncurriculum-Text wiederauffindbar",
                    "passed": true,
                    "details": "Nicht wiedergefunden: -"
                  },
                  {
                    "id": "g8-source-goals-created",
                    "label": "Aus G8-Jahrgangspassagen wurden granulare Source-Ziele erzeugt",
                    "passed": true,
                    "details": "G8-Source-Ziele: 175; Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "g9-source-goals-created",
                    "label": "Aus G9-Jahrgangspassagen wurden granulare Source-Ziele erzeugt",
                    "passed": true,
                    "details": "G9-Source-Ziele: 241; Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "competency-source-goals-created",
                    "label": "Kompetenzerwartungen aus KC 7.1/7.2/6 wurden als Source-Ziele erzeugt",
                    "passed": true,
                    "details": "Kompetenz-Source-Ziele: 86; fehlend: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 ist vollständig abgeschlossen",
                    "passed": true,
                    "details": "Source-Ziel-Basis ist bereit für Mapping auf SkillPilot-Ziele."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-mapping-entries-reference-source-goals",
                    "label": "Persistierte Mapping-Einträge referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Unbekannte Mapping-Source-Ziele: -"
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "601/601 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 601/601; Mappings: 601/601; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              },
              {
                "id": "MAPPING-4",
                "label": "G8/G9-Jahrgangsprojektion in SkillPilot abgedeckt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2",
                  "MAPPING-3"
                ],
                "checks": [
                  {
                    "id": "mapping-3-complete",
                    "label": "MAPPING-3 ist vollständig abgeschlossen",
                    "passed": true,
                    "details": "G8/G9-Jahrgangsprojektion kann gegen die kanonische SkillPilot-Landschaft geprüft werden."
                  },
                  {
                    "id": "m4-duration-projection-evidence-present",
                    "label": "G8/G9-Jahrgangsevidenz wurde aus Lehrplan-Mapping abgeleitet",
                    "passed": true,
                    "details": "Evidence: 598; G8: 262; G9: 336; Canonical-Ziele: 251"
                  },
                  {
                    "id": "m4-g8-g9-differences-detected",
                    "label": "G8/G9 erzeugt unterschiedliche Jahrgangsprojektionen",
                    "passed": true,
                    "details": "Unterschiedliche G8/G9-Jahrgangsevidenz bei 118 Canonical-Zielen"
                  },
                  {
                    "id": "m4-duration-projection-covered",
                    "label": "G8/G9-Jahrgangsevidenz ist durch Jahrgangsstruktur oder goalPlacements abgedeckt",
                    "passed": true,
                    "details": "Abgedeckt: 598/598; offen: -"
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c0ecbd92-92da-4b37-b77d-d537824d5141",
            "title": "Mathematik Sekundarstufe I (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_MATHEMATIK_SEKI_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH_GYM_SEKI_MATHEMATIK_2022",
                "title": "Bildungsplan Gymnasium Sekundarstufe I - Mathematik, Hamburg 2022",
                "path": "curricula/DE/Gymnasium/input/HH/mathematik-gym-seki-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/122944/62db046dc3abf1ed671370d8c8b36c65/mathematik-gym-seki-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 437,
            "passages": 43,
            "mappedSourceGoals": 437,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 137,
            "partialMappings": 300,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "437 Source-Ziele sind plausibel: Hamburg 2022 wird modul- und bulletnah aus 43 Modulen der Jahrgangsbaender 5/6, 7/8 und 9/10 extrahiert; die hoehere Zahl gegenueber BW folgt der feineren Modulstruktur, nicht einer doppelten Dauer-Modell-Zaehlung.",
              "status": "accepted"
            },
            "sourceGoalGranularity": {
              "averageWords": 8.327231121281464,
              "p90Words": 14,
              "maxWords": 53,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "hh-math-seki-2022-hh-seki-7-8-10-01-b2dd69d1ae",
                  "topicCode": "HH-SEKI-7-8-10",
                  "words": 53,
                  "text": "Verschiedene Aspekte von Gleichungen und deren Lösung in unterschiedlichen Zusammenhängen untersuchen. Eine Gleichung lösen bedeutet, eine Zahl/Zahlen zu erm..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburger Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/mathematik-gym-seki-2022-data.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "43/43 module passages extracted from the official PDF."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte Hamburger Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus dem amtlichen PDF."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "43/43 module passages extracted from the official PDF."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "437 source goals from the module content bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "437 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 57%. Kritisch gepruefte Abweichung: 437 Source-Ziele sind plausibel: Hamburg 2022 wird modul- und bulletnah aus 43 Modulen der Jahrgangsbaender 5/6, 7/8 und 9/10 extrahiert; die hoehere Zahl gegenueber BW folgt der feineren Modulstruktur, nicht einer doppelten Dauer-Modell-Zaehlung."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "437 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "437/437 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 437/437; Mappings: 437/437; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "42e6e650-ed49-472f-bd01-ba712d096bda",
            "title": "Mathematik Studienstufe (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/source-extraction/DE_HH_MATHEMATIK_SEKII_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH_GYO_MATHEMATIK_2022",
                "title": "Bildungsplan Studienstufe Mathematik, Hamburg 2022",
                "path": "curricula/DE/Gymnasium/input/HH/mathematik-gyo-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123074/23276415bdfb32ba8bb652f7c1998a4c/mathematik-gyo-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 189,
            "passages": 15,
            "mappedSourceGoals": 189,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 189,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 11.216931216931217,
              "p90Words": 18,
              "maxWords": 64,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "hh-math-sekii-2022-hh-sekii-k7-03-e10a1e409f",
                  "topicCode": "HH-SEKII-K7",
                  "words": 64,
                  "text": "nutzen analoge und digitale Mathematikwerkzeuge (z. B. Tabellenkalkulation, modulares Mathematiksystem, dynamische Geometrie-Software), indem sie mit diesen ..."
                },
                {
                  "id": "hh-math-sekii-2022-hh-sekii-m4-02-bd5236851c",
                  "topicCode": "HH-SEKII-M4",
                  "words": 53,
                  "text": "graphische Darstellung von e-Funktionen und Beschreibung des prinzipiellen Verlaufs, einschließlich ihres asymptotischen Verhaltens Bestimmung der Eulerschen..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches Hamburger Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/mathematik-gyo-2022-data.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "15/15 process/module passages extracted from the official PDF."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte Hamburger Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus dem amtlichen PDF."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "15/15 process/module passages extracted from the official PDF."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "189 source goals from official K1-K7 process bullets and Studienstufe module content bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "189 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -30%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "189 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "189/189 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 189/189; Mappings: 189/189; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9d420a46-b007-44ce-a4b4-453ef4e38523",
            "title": "DE-MV - Mathematik Qualifikationsphase (Mecklenburg-Vorpommern, Rahmenplan 2019 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/source-extraction/DE_MV_MATHEMATIK_SEKII_RAHMENPLAN_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV_GYM_MATHEMATIK_11_12_2019",
                "title": "Rahmenplan Mathematik Qualifikationsphase Jahrgangsstufen 11/12, Mecklenburg-Vorpommern 2019",
                "path": "curricula/DE/Gymnasium/input/MV/Mathematik_Gymnasium_11_12_2019.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_MA_SEK2.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 219,
            "passages": 15,
            "mappedSourceGoals": 219,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 219,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.82648401826484,
              "p90Words": 13,
              "maxWords": 87,
              "longGoals": 6,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-mv-mathematik-sekii-rahmenplan-2019-mv-sekii-k3-001-8784315acd",
                  "topicCode": "MV-SEKII-K3",
                  "words": 87,
                  "text": "K3 Mathematisch modellieren: Hier geht es um den Wechsel zwischen Realsituationen und mathematischen Begriffen, Resultaten oder Methoden. Hierzu gehört sowoh..."
                },
                {
                  "id": "de-mv-mathematik-sekii-rahmenplan-2019-mv-sekii-k5-001-60268a6739",
                  "topicCode": "MV-SEKII-K5",
                  "words": 78,
                  "text": "K5 Mit symbolischen, formalen und technischen Elementen der Mathematik umgehen: Diese Kompetenz beinhaltet in erster Linie das Ausführen von Operationen mit ..."
                },
                {
                  "id": "de-mv-mathematik-sekii-rahmenplan-2019-mv-sekii-k6-001-d8a991e164",
                  "topicCode": "MV-SEKII-K6",
                  "words": 73,
                  "text": "K6 Mathematisch kommunizieren: Zu dieser Kompetenz gehören sowohl das Entnehmen von Informationen aus schriftlichen Texten, mündlichen Äußerungen oder sonsti..."
                },
                {
                  "id": "de-mv-mathematik-sekii-rahmenplan-2019-mv-sekii-k1-001-f1f5badc51",
                  "topicCode": "MV-SEKII-K1",
                  "words": 60,
                  "text": "K1 Mathematisch argumentieren: Zu dieser Kompetenz gehören sowohl das Entwickeln eigenständiger, situationsangemessener mathematischer Argumentationen und Ve..."
                },
                {
                  "id": "de-mv-mathematik-sekii-rahmenplan-2019-mv-sekii-k4-001-2c3d67619b",
                  "topicCode": "MV-SEKII-K4",
                  "words": 58,
                  "text": "K4 Mathematische Darstellungen verwenden: Diese Kompetenz umfasst das Auswählen geeigneter Darstellungsformen, das Erzeugen mathematischer Darstellungen und ..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche MV-Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Mathematik_Gymnasium_11_12_2019.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichen PDFs sind erfasst",
                    "passed": true,
                    "details": "15/15 official MV Sek-II passage groups extracted from PDF text; 219 Source-Ziele."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte MV-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "15/15 official MV Sek-II passage groups extracted from PDF text; 219 Source-Ziele."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "219 Source-Ziele from official process competencies, content bullets/headings and K1-K6 examples; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "219 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -18%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "219 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "219/219 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 219/219; Mappings: 219/219; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "71c43461-d20e-4267-bd18-ad9ba66f0c5b",
            "title": "DE-MV - Mathematik Sekundarstufe I (Mecklenburg-Vorpommern, Rahmenplaene 2020/2019 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_MATHEMATIK_SEKI_RAHMENPLAENE_2020_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV_OS_MATHEMATIK_5_6_2020",
                "title": "Rahmenplan Mathematik Orientierungsstufe Jahrgangsstufen 5/6, Mecklenburg-Vorpommern 2020",
                "path": "curricula/DE/Gymnasium/input/MV/Mathematik_Orientierungsstufe_5_6_2020.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_OS_MA-Endfassung.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "MV_GYM_MATHEMATIK_7_10_2019",
                "title": "Rahmenplan Mathematik Gymnasium/Gesamtschule Jahrgangsstufen 7-10, Mecklenburg-Vorpommern 2019",
                "path": "curricula/DE/Gymnasium/input/MV/Mathematik_Gymnasium_7_10_2019.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_MA_AHR_7-10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 369,
            "passages": 33,
            "mappedSourceGoals": 369,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 131,
            "partialMappings": 238,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "369 Source-Ziele sind plausibel: Mecklenburg-Vorpommern wird aus zwei amtlichen Plaenen fuer 5/6 und 7-10 extrahiert und enthaelt neben verbindlichen Inhaltsitems auch K1-K6-Prozessbeispiele; die Abweichung zur BW-Baseline folgt der amtlichen Dokumentstruktur.",
              "status": "accepted"
            },
            "sourceGoalGranularity": {
              "averageWords": 3.111111111111111,
              "p90Words": 6,
              "maxWords": 64,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-mv-mathematik-seki-rahmenplaene-2020-2019-mv-seki-gym-j9-potenzieren-und-radizieren-006-c21babd098",
                  "topicCode": "MV-SEKI-GYM-J9-POTENZIEREN-UND-RADIZIEREN",
                  "words": 64,
                  "text": "Potenz- und Wurzelgesetze unter Beachtung der entsprechenden Definitionsbereiche 1 m a n m an an  bn  (a  b)n n a  n b  n a b n an  a  a na   bn ..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche MV-Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Mathematik_Orientierungsstufe_5_6_2020.pdf; curricula/DE/Gymnasium/input/MV/Mathematik_Gymnasium_7_10_2019.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichen PDFs sind erfasst",
                    "passed": true,
                    "details": "33/33 official MV Sek-I passage groups extracted from PDF text; 369 Source-Ziele."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte MV-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "33/33 official MV Sek-I passage groups extracted from PDF text; 369 Source-Ziele."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "369 Source-Ziele from official content bullets/headings and K1-K6 process examples; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "369 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 33%. Kritisch gepruefte Abweichung: 369 Source-Ziele sind plausibel: Mecklenburg-Vorpommern wird aus zwei amtlichen Plaenen fuer 5/6 und 7-10 extrahiert und enthaelt neben verbindlichen Inhaltsitems auch K1-K6-Prozessbeispiele; die Abweichung zur BW-Baseline folgt der amtlichen Dokumentstruktur."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "369 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "369/369 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 369/369; Mappings: 369/369; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "fcb04661-6ea2-4030-a9b2-97e6cc03daf8",
            "title": "DE-NI - Mathematik Gymnasiale Oberstufe (Niedersachsen, Kerncurriculum 2019 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/source-extraction/DE_NI_MATHEMATIK_SEKII_KERNCURRICULUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI_GYM_SEKII_MATHEMATIK_KC_2019",
                "title": "Kerncurriculum Mathematik fuer die gymnasiale Oberstufe, Niedersachsen 2019",
                "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/ma_go_kc_druck_2019.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=208",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 220,
            "passages": 25,
            "mappedSourceGoals": 220,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 220,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 10.768181818181818,
              "p90Words": 19,
              "maxWords": 37,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NI-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/ma_go_kc_druck_2019.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "25/25 official Niedersachsen upper-secondary process and Lernbereich-Kern passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte Niedersachsen-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "25/25 official Niedersachsen upper-secondary process and Lernbereich-Kern passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "220 source goals from official K1-K6 process bullets and Lernbereich-Kern leaf bullets; chapter 3.2 standards are not double-counted; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "220 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -18%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "220 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "220/220 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 220/220; Mappings: 220/220; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2b995085-dc5e-47c6-a563-9dcfc01fb74d",
            "title": "DE-NI - Mathematik Sekundarstufe I (Niedersachsen, Kerncurriculum Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/source-extraction/DE_NI_MATHEMATIK_SEKI_KERNCURRICULUM.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI_GYM_SEKI_MATHEMATIK_KC",
                "title": "Kerncurriculum Mathematik fuer das Gymnasium Schuljahrgaenge 5-10, Niedersachsen",
                "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/ma_gym_si_kc_druck.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=63",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 361,
            "passages": 28,
            "mappedSourceGoals": 361,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 112,
            "partialMappings": 249,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.825484764542936,
              "p90Words": 13,
              "maxWords": 38,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NI-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/ma_gym_si_kc_druck.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "28/28 official Niedersachsen Sek-I process and Lernbereich-Kern passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte Niedersachsen-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "28/28 official Niedersachsen Sek-I process and Lernbereich-Kern passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "361 source goals from official K1-K6 process bullets and learning-area core bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "361 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 30%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "361 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "361/361 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 361/361; Mappings: 361/361; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "d3a068ca-90c6-4d7f-ab6b-4d8b43085cb1",
            "title": "DE-NW - Mathematik Gymnasiale Oberstufe (Nordrhein-Westfalen, KLP 2023 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/source-extraction/DE_NW_MATHEMATIK_SEKII_KLP_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW_GYM_SEKII_MATHEMATIK_KLP_2023",
                "title": "Kernlehrplan Mathematik Gymnasiale Oberstufe, Nordrhein-Westfalen 2023",
                "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_m_2023_06_07.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/gost_klp_m_2023_06_07.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 235,
            "passages": 13,
            "mappedSourceGoals": 235,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 235,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 11.953191489361702,
              "p90Words": 20,
              "maxWords": 89,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-nw-mathematik-sekii-klp-2023-nw-sekii-process-operieren-012-ac502e79fb",
                  "topicCode": "NW-SEKII-PROCESS-OPERIEREN",
                  "words": 89,
                  "text": "verwenden im Unterricht ein modulares Mathematiksystem 1 (MMS) zum … Lösen von Gleichungen und Gleichungssystemen auch abhängig von Parametern, zielgerichtet..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NRW-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_m_2023_06_07.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "13/13 official NRW upper-secondary process/content passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte NRW-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "13/13 official NRW upper-secondary process/content passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "235 source goals from official process bullets, inhaltliche Schwerpunkte and numbered competency expectations; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "235 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -12%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "235 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "235/235 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 235/235; Mappings: 235/235; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c862423f-d0ac-4a65-8ad2-9a6e560313a8",
            "title": "DE-NW - Mathematik Sekundarstufe I (Nordrhein-Westfalen, KLP 2019 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/source-extraction/DE_NW_MATHEMATIK_SEKI_KLP_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW_GYM_SEKI_MATHEMATIK_KLP_2019",
                "title": "Kernlehrplan Mathematik Sekundarstufe I Gymnasium G9, Nordrhein-Westfalen 2019",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_m_klp_3401_2019_06_23_0.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_m_klp_3401_2019_06_23_0.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 207,
            "passages": 17,
            "mappedSourceGoals": 207,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 38,
            "partialMappings": 169,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Der NRW KLP 2019 ist eine kompakte nummerierte KLP-Struktur. Kritisch abgeglichen wurden 2.2 mit 53 Prozesskompetenzerwartungen, 2.3/2.4 mit 113 nummerierten inhaltsbezogenen Kompetenzerwartungen und 41 inhaltlichen Schwerpunkten; alle diese amtlichen Listen sind extrahiert. Die niedrige Zielzahl ist damit fachplanstrukturell plausibel, nicht ein Hinweis auf fehlende Passage-Extraction."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.927536231884059,
              "p90Words": 19,
              "maxWords": 37,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches NRW-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_m_klp_3401_2019_06_23_0.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "17/17 official NRW Sek-I process/content passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte NRW-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "17/17 official NRW Sek-I process/content passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "207 source goals from official process bullets, inhaltliche Schwerpunkte and numbered competency expectations; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "207 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median -26%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "207 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "207/207 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 207/207; Mappings: 207/207; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2095b9f8-9d79-40bb-9601-3133ebb6f355",
            "title": "DE-RP - Mathematik Gymnasiale Oberstufe (Rheinland-Pfalz, MSS 2015 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/source-extraction/DE_RP_MATHEMATIK_SEKII_MSS_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP_GYM_SEKII_MATHEMATIK_MSS_2015",
                "title": "Lehrplan Mathematik Grund- und Leistungsfach in der gymnasialen Oberstufe, Rheinland-Pfalz, Maerz 2015",
                "path": "curricula/DE/Gymnasium/input/RP/Mathematik_Sekundarstufe_II_MSS.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?tx_rlpbase_download%5Baction%5D=download&tx_rlpbase_download%5Bcontroller%5D=Download&tx_rlpbase_download%5Bitem%5D=56486&type=432522&cHash=9d657e3ab0dc693de509d67c39f2a5b7",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 192,
            "passages": 23,
            "mappedSourceGoals": 192,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 192,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 10.510416666666666,
              "p90Words": 16,
              "maxWords": 36,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches RP-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Mathematik_Sekundarstufe_II_MSS.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "23/23 official RP upper-secondary standard/course passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte RP-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "23/23 official RP upper-secondary standard/course passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "192 source goals from official standard-code competencies and Grundfach/Leistungsfach goal rows; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "192 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -28%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "192 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "192/192 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 192/192; Mappings: 192/192; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "810f8134-b4be-4f16-9b14-e50228b30bdd",
            "title": "DE-RP - Mathematik Sekundarstufe I (Rheinland-Pfalz, Rahmenlehrplan 2007 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/source-extraction/DE_RP_MATHEMATIK_SEKI_RAHMENLEHRPLAN_2007.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP_GYM_SEKI_MATHEMATIK_RAHMENLEHRPLAN_2007",
                "title": "Rahmenlehrplan Mathematik Klassenstufen 5 bis 9/10, Rheinland-Pfalz, Mai 2007",
                "path": "curricula/DE/Gymnasium/input/RP/Mathematik_Sekundarstufe_I.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?tx_rlpbase_download%5Baction%5D=download&tx_rlpbase_download%5Bcontroller%5D=Download&tx_rlpbase_download%5Bitem%5D=56490&type=432522&cHash=a23c232416037e96006b9277a0170bfc",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 253,
            "passages": 25,
            "mappedSourceGoals": 253,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 61,
            "partialMappings": 192,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.7272727272727275,
              "p90Words": 12,
              "maxWords": 27,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches RP-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Mathematik_Sekundarstufe_I.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "25/25 official RP Sek-I process and Leitideen passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte RP-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "25/25 official RP Sek-I process and Leitideen passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "253 source goals from official K1-K6 process bullets, Leitideen content-table rows and subitems; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "253 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median -9%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "253 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "253/253 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 253/253; Mappings: 253/253; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "01ffba7d-7588-4221-bd2b-1a692839809a",
            "title": "DE-SH - Mathematik Oberstufe (Schleswig-Holstein, Fachanforderungen 2024 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/upper-secondary/source-extraction/DE_SH_MATHEMATIK_SEKII_FACHANFORDERUNGEN_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH_GYM_MATHEMATIK_FACHANFORDERUNGEN_2024",
                "title": "Fachanforderungen Mathematik Sekundarstufe, Schleswig-Holstein 2024",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Mathematik_Sekundarstufe_2024_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/sh/faecher/mathematik/fachanforderungen.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Mathematik%20Sekundarstufe%20%282024%29%2C%20barrierearm.pdf&cid=16990",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 274,
            "passages": 6,
            "mappedSourceGoals": 274,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 74,
            "partialMappings": 200,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 5.5,
              "p90Words": 13,
              "maxWords": 29,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches SH-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Mathematik_Sekundarstufe_2024_barrierearm.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "6/6 official Schleswig-Holstein source passages extracted from PDF text, including content Leitideen and process competencies."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte SH-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "6/6 official Schleswig-Holstein source passages extracted from PDF text, including content Leitideen and process competencies."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "274 source goals from official content rows, binding topic/content rows, and process competency sections; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "274 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median 2%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "274 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "274/274 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 274/274; Mappings: 274/274; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "271b385b-04c7-4205-8202-b2dc918f5782",
            "title": "DE-SH - Mathematik Sekundarstufe I (Schleswig-Holstein, Fachanforderungen 2024 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SH/lower-secondary/source-extraction/DE_SH_MATHEMATIK_SEKI_FACHANFORDERUNGEN_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH_GYM_MATHEMATIK_FACHANFORDERUNGEN_2024",
                "title": "Fachanforderungen Mathematik Sekundarstufe, Schleswig-Holstein 2024",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Mathematik_Sekundarstufe_2024_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/sh/faecher/mathematik/fachanforderungen.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Mathematik%20Sekundarstufe%20%282024%29%2C%20barrierearm.pdf&cid=16990",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 346,
            "passages": 6,
            "mappedSourceGoals": 346,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 128,
            "partialMappings": 218,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 5.017341040462428,
              "p90Words": 11,
              "maxWords": 38,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches SH-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Mathematik_Sekundarstufe_2024_barrierearm.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "6/6 official Schleswig-Holstein source passages extracted from PDF text, including content Leitideen and process competencies."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte SH-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "6/6 official Schleswig-Holstein source passages extracted from PDF text, including content Leitideen and process competencies."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "346 source goals from official content rows, binding topic/content rows, and process competency sections; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "346 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 24%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "346 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "346/346 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 346/346; Mappings: 346/346; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7d66c285-38b4-4031-9836-2bba5de68e24",
            "title": "DE-SL - Mathematik Gymnasiale Oberstufe (Saarland, GOS 2014/2019 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_MATHEMATIK_SEKII_GOS_2014_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL_GOS_MATHEMATIK_EP_2014",
                "title": "Lehrplan Mathematik Einfuehrungsphase der gymnasialen Oberstufe, Saarland, Juli 2014",
                "path": "curricula/DE/Gymnasium/input/SL/LP_Ma_EP_GOS_2014.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_GOS_ab_2019_2020/Mathematik/LP_Ma_EP_GOS_2014.pdf?__blob=publicationFile&v=3",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL_GOS_MATHEMATIK_GK_2019",
                "title": "Lehrplan Mathematik Hauptphase G-Kurs der gymnasialen Oberstufe, Saarland, Juli 2019",
                "path": "curricula/DE/Gymnasium/input/SL/LP_Ma_GOS_HP_G-Kurs_2016_Stand_2019.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_GOS_ab_2019_2020/Mathematik/LP_Ma_GOS_HP_G-Kurs_2016_Stand_2019.pdf?__blob=publicationFile&v=4",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL_GOS_MATHEMATIK_LK_2019",
                "title": "Lehrplan Mathematik Hauptphase Leistungskurs der gymnasialen Oberstufe, Saarland, Juli 2019",
                "path": "curricula/DE/Gymnasium/input/SL/LP_Ma_LK_HP_2019.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_GOS_ab_2019_2020/Mathematik/LP_Ma_LK_HP_2019.pdf?__blob=publicationFile&v=3",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 743,
            "passages": 23,
            "mappedSourceGoals": 743,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 743,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Die Saarland-GOS-Lehrplaene liegen getrennt fuer Einfuehrungsphase, G-Kurs und Leistungskurs vor und enthalten sehr kleinteilige Kompetenz-Bullets. Die Source-Extraction bildet jedes amtliche Kompetenz-Bullet als einzelnes Source-Ziel ab; die hohe Zielzahl ist deshalb fachplanstrukturell plausibel und nicht eine kuenstliche Duplikation."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.763122476446837,
              "p90Words": 19,
              "maxWords": 40,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SL-Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/LP_Ma_EP_GOS_2014.pdf, curricula/DE/Gymnasium/input/SL/LP_Ma_GOS_HP_G-Kurs_2016_Stand_2019.pdf, curricula/DE/Gymnasium/input/SL/LP_Ma_LK_HP_2019.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichen PDFs sind erfasst",
                    "passed": true,
                    "details": "23/23 official Saarland topic passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte SL-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "23/23 official Saarland topic passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "743 source goals from 743 official competence bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "743 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median 177%. Kritisch gepruefte Abweichung: Die Saarland-GOS-Lehrplaene liegen getrennt fuer Einfuehrungsphase, G-Kurs und Leistungskurs vor und enthalten sehr kleinteilige Kompetenz-Bullets. Die Source-Extraction bildet jedes amtliche Kompetenz-Bullet als einzelnes Source-Ziel ab; die hohe Zielzahl ist deshalb fachplanstrukturell plausibel und nicht eine kuenstliche Duplikation."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "743 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "743/743 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 743/743; Mappings: 743/743; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9250478f-ebb4-438d-b6d9-738e1a6d574a",
            "title": "DE-SL - Mathematik Sekundarstufe I (Saarland, Gymnasium G9 2023-2026 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_MATHEMATIK_SEKI_GYM9_2023_2026.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL_GYM9_MATHEMATIK_5_6_2023",
                "title": "Lehrplan Mathematik Klassenstufen 5/6 im neunjährigen Gymnasium, Saarland, Juli 2023",
                "path": "curricula/DE/Gymnasium/input/SL/LP_MA_gym9_5und6_2023.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Mathe/LP_MA_gym9_5und6_2023.pdf?__blob=publicationFile&v=4",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL_GYM9_MATHEMATIK_7_2023",
                "title": "Lehrplan Mathematik Klassenstufe 7 im neunjährigen Gymnasium, Saarland, Juli 2023",
                "path": "curricula/DE/Gymnasium/input/SL/LP_MA_gym9_7_2023.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Mathe/LP_MA_gym9_7_2023.pdf?__blob=publicationFile&v=4",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL_GYM9_MATHEMATIK_8_2024",
                "title": "Lehrplan Mathematik Klassenstufe 8 im neunjährigen Gymnasium, Saarland, Juli 2024",
                "path": "curricula/DE/Gymnasium/input/SL/LP_MA_gym9_8_2024.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Mathe/LP_MA_gym9_8_2024.pdf?__blob=publicationFile&v=2",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL_GYM9_MATHEMATIK_9_2025",
                "title": "Lehrplan Mathematik Klassenstufe 9 im neunjährigen Gymnasium, Saarland, Februar 2025",
                "path": "curricula/DE/Gymnasium/input/SL/LP_MA_gym9_9_2025.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Mathe/LP_MA_gym9_9_2025.pdf?__blob=publicationFile&v=3",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL_GYM9_MATHEMATIK_10_2026",
                "title": "Lehrplan Mathematik Klassenstufe 10 im neunjährigen Gymnasium, Saarland, Maerz 2026",
                "path": "curricula/DE/Gymnasium/input/SL/LP_MA_gym9_10_2026.pdf",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrplaene/Lehrplaene_Gymnasium_neunjaehriges_23/Mathe/LP_MA_gym9_10_2026.pdf?__blob=publicationFile&v=5",
                "landingUrl": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 818,
            "passages": 37,
            "mappedSourceGoals": 818,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 175,
            "partialMappings": 643,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Die Saarland-G9-Sek-I-Lehrplaene 2023-2026 sind jahresstufenspezifische Einzeldokumente mit sehr kleinteiligen Kompetenz-Bullets. Die Source-Extraction bildet jedes amtliche Kompetenz-Bullet als einzelnes Source-Ziel ab; die hohe Zielzahl ist deshalb fachplanstrukturell plausibel und nicht eine kuenstliche Duplikation."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.792176039119804,
              "p90Words": 18,
              "maxWords": 120,
              "longGoals": 10,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-sl-mathematik-seki-gym9-2023-2026-sl-seki-5-6-t08-rechnen-mit-bruchen-b01-18722d6753",
                  "topicCode": "SL-SEKI-5/6-T08-RECHNEN-MIT-BRUCHEN-B01",
                  "words": 120,
                  "text": "veranschaulichen die Kommutativität der Addition von (Dezimal-)Brüchen geometrisch, formulieren die Eigenschaften der Addition verbal, verschaffen sich Reche..."
                },
                {
                  "id": "de-sl-mathematik-seki-gym9-2023-2026-sl-seki-8-t04-lineare-funktionen-b10-d958e4ea8d",
                  "topicCode": "SL-SEKI-8-T04-LINEARE-FUNKTIONEN-B10",
                  "words": 105,
                  "text": "bestimmen anhand des Funktionsgraphen die Wertemenge einer Funktion, lösen Sachaufgaben (auch im Kontext BNE möglich), geben zur Kehrwertfunktion, zur Betrag..."
                },
                {
                  "id": "de-sl-mathematik-seki-gym9-2023-2026-sl-seki-8-t05-kreis-und-zylinder-b03-3e0787b087",
                  "topicCode": "SL-SEKI-8-T05-KREIS-UND-ZYLINDER-B03",
                  "words": 81,
                  "text": "berechnen den Flächeninhalt eines Kreises bei vorgegebenem Durchmesser bzw. Radius und umgekehrt, untersuchen, wie sich eine Veränderung des Kreisradius‘ auf..."
                },
                {
                  "id": "de-sl-mathematik-seki-gym9-2023-2026-sl-seki-8-t01-kongruenz-und-dreieckskonstruktionen-b01-19301ef43d",
                  "topicCode": "SL-SEKI-8-T01-KONGRUENZ-UND-DREIECKSKONSTRUKTIONEN-B01",
                  "words": 75,
                  "text": "identifizieren bei kongruenten Figuren einander entsprechende Strecken und Winkel, begründen mithilfe der Eigenschaften der Kongruenzabbildungen, dass in kon..."
                },
                {
                  "id": "de-sl-mathematik-seki-gym9-2023-2026-sl-seki-8-t07-aussagenlogik-nur-informatik-zweig-b02-dfd8f458b8",
                  "topicCode": "SL-SEKI-8-T07-AUSSAGENLOGIK-NUR-INFORMATIK-ZWEIG-B02",
                  "words": 64,
                  "text": "stellen die Wirkungsweise von Undbzw. Oder-Schaltungen aus dem Alltag in Tabellen dar, formulieren die Konjunktion und die Disjunktion zweier Aussagen in Wor..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SL-Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/LP_MA_gym9_5und6_2023.pdf, curricula/DE/Gymnasium/input/SL/LP_MA_gym9_7_2023.pdf, curricula/DE/Gymnasium/input/SL/LP_MA_gym9_8_2024.pdf, curricula/DE/Gymnasium/input/SL/LP_MA_gym9_9_2025.pdf, curricula/DE/Gymnasium/input/SL/LP_MA_gym9_10_2026.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichen PDFs sind erfasst",
                    "passed": true,
                    "details": "37/37 official Saarland topic passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte SL-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "37/37 official Saarland topic passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "818 source goals from 818 official competence bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "818 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 194%. Kritisch gepruefte Abweichung: Die Saarland-G9-Sek-I-Lehrplaene 2023-2026 sind jahresstufenspezifische Einzeldokumente mit sehr kleinteiligen Kompetenz-Bullets. Die Source-Extraction bildet jedes amtliche Kompetenz-Bullet als einzelnes Source-Ziel ab; die hohe Zielzahl ist deshalb fachplanstrukturell plausibel und nicht eine kuenstliche Duplikation."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "818 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "818/818 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 818/818; Mappings: 818/818; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "59e52106-1d03-46ae-8fc6-6fdd6ab181d0",
            "title": "DE-SN - Mathematik Jahrgangsstufen 11/12 (Sachsen, Lehrplan Gymnasium 2019 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SN/upper-secondary/source-extraction/DE_SN_MATHEMATIK_SEKII_LEHRPLAN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN_GYM_MATHEMATIK_LEHRPLAN_2019",
                "title": "Lehrplan Gymnasium Mathematik, Sachsen, 2019",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-mathematik-sachsen-2019.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/121/galmOUYkLcTVJh8Sk6g9",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 243,
            "passages": 31,
            "mappedSourceGoals": 243,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 243,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 8.938271604938272,
              "p90Words": 13,
              "maxWords": 92,
              "longGoals": 9,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "de-sn-mathematik-sekii-lehrplan-gymnasium-2019-sn-sekii-lk-zg00-stufenbezogene-ziele-r001-f03d1bfe5c",
                  "topicCode": "SN-SEKII-LK-ZG00-STUFENBEZOGENE-ZIELE-R001",
                  "words": 92,
                  "text": "Entwickeln von Problemlösefähigkeiten: Die Schüler wenden die neu erworbenen Kenntnisse der Differential- und Integralrechnung, der Vektor- rechnung und anal..."
                },
                {
                  "id": "de-sn-mathematik-sekii-lehrplan-gymnasium-2019-sn-sekii-lk-zg00-stufenbezogene-ziele-r003-a4a9e25adf",
                  "topicCode": "SN-SEKII-LK-ZG00-STUFENBEZOGENE-ZIELE-R003",
                  "words": 80,
                  "text": "Entwickeln des verständigen Umgangs mit der fachgebundenen Sprache unter Bezug und Ab- grenzung zur alltäglichen Sprache: Die Schüler verstehen, reflektieren..."
                },
                {
                  "id": "de-sn-mathematik-sekii-lehrplan-gymnasium-2019-sn-sekii-lk-zg00-stufenbezogene-ziele-r005-0d82f2dc0f",
                  "topicCode": "SN-SEKII-LK-ZG00-STUFENBEZOGENE-ZIELE-R005",
                  "words": 76,
                  "text": "Erwerben grundlegender Kompetenzen im Umgang mit ausgewählten mathematischen Objekten: Die Schüler gelangen zu vertieften Einsichten bezüglich der zentralen ..."
                },
                {
                  "id": "de-sn-mathematik-sekii-lehrplan-gymnasium-2019-sn-sekii-lk-zg00-stufenbezogene-ziele-r002-085b6b8e2f",
                  "topicCode": "SN-SEKII-LK-ZG00-STUFENBEZOGENE-ZIELE-R002",
                  "words": 75,
                  "text": "Entwickeln eines kritischen Vernunftgebrauchs: Die Schüler werten kritisch die Eignung von Modellen, Verfahren sowie Hilfsmitteln. Sie schätzen ein, ob eine ..."
                },
                {
                  "id": "de-sn-mathematik-sekii-lehrplan-gymnasium-2019-sn-sekii-lk-zg00-stufenbezogene-ziele-r004-6db294a627",
                  "topicCode": "SN-SEKII-LK-ZG00-STUFENBEZOGENE-ZIELE-R004",
                  "words": 73,
                  "text": "Entwickeln des Anschauungsvermögens: Die Schüler nutzen Vektoren zur Veranschaulichung und Beschreibung geometrischer Objekte in Ebene und Raum. Sie stellen ..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches SN-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-mathematik-sachsen-2019.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "31/31 official Sachsen Lernbereich/Wahlbereich passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte SN-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "31/31 official Sachsen Lernbereich/Wahlbereich passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "241 source goals from 241 official objective/subitem rows; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "243 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -9%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "241 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "243/243 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 243/243; Mappings: 243/243; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a615db78-931e-44ac-b0b5-44e16286470f",
            "title": "DE-SN - Mathematik Sekundarstufe I (Sachsen, Lehrplan Gymnasium 2019 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_MATHEMATIK_SEKI_LEHRPLAN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN_GYM_MATHEMATIK_LEHRPLAN_2019",
                "title": "Lehrplan Gymnasium Mathematik, Sachsen, 2019",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-mathematik-sachsen-2019.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/121/galmOUYkLcTVJh8Sk6g9",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 327,
            "passages": 47,
            "mappedSourceGoals": 327,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 75,
            "partialMappings": 252,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.9296636085626915,
              "p90Words": 12,
              "maxWords": 40,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches SN-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-mathematik-sachsen-2019.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "47/47 official Sachsen Lernbereich/Wahlbereich passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte SN-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "47/47 official Sachsen Lernbereich/Wahlbereich passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "327 source goals from 327 official objective/subitem rows; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "327 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 18%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "327 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "327/327 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 327/327; Mappings: 327/327; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "000359cf-2dfb-4216-bc71-743f76917a35",
            "title": "DE-ST - Mathematik Qualifikationsphase (Sachsen-Anhalt, Fachlehrplan Gymnasium 2019 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/ST/upper-secondary/source-extraction/DE_ST_MATHEMATIK_SEKII_FACHLEHRPLAN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST_GYM_MATHEMATIK_FACHLEHRPLAN_2019",
                "title": "Fachlehrplan Mathematik Gymnasium/Berufliches Gymnasium, Sachsen-Anhalt, Stand 01.07.2019",
                "path": "curricula/DE/Gymnasium/input/ST/Mathematik_FLP_Gym_01_07_2019.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung/Mathematik_FLP_Gym_01_07_2019.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 188,
            "passages": 15,
            "mappedSourceGoals": 188,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 188,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.409574468085107,
              "p90Words": 13,
              "maxWords": 23,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches ST-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/Mathematik_FLP_Gym_01_07_2019.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "15/15 official Sachsen-Anhalt Kompetenzschwerpunkt passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte ST-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "15/15 official Sachsen-Anhalt Kompetenzschwerpunkt passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "188 source goals from 100 official content-competency bullets and 88 official knowledge bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "188 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -30%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "188 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "188/188 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 188/188; Mappings: 188/188; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "251bcdfc-19eb-4543-8ff7-5fb9fef6b667",
            "title": "DE-ST - Mathematik Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan Gymnasium 2019 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_MATHEMATIK_SEKI_FACHLEHRPLAN_GYMNASIUM_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST_GYM_MATHEMATIK_FACHLEHRPLAN_2019",
                "title": "Fachlehrplan Mathematik Gymnasium/Berufliches Gymnasium, Sachsen-Anhalt, Stand 01.07.2019",
                "path": "curricula/DE/Gymnasium/input/ST/Mathematik_FLP_Gym_01_07_2019.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung/Mathematik_FLP_Gym_01_07_2019.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 424,
            "passages": 32,
            "mappedSourceGoals": 424,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 137,
            "partialMappings": 287,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "424 Source-Ziele sind plausibel: Sachsen-Anhalt wird bewusst zeilennah aus 257 inhaltsbezogenen Kompetenzzeilen und 167 Grundlegende-Wissensbestaende-Zeilen extrahiert; die hohe Zahl ist eine Folge der amtlichen Tabellenstruktur.",
              "status": "accepted"
            },
            "sourceGoalGranularity": {
              "averageWords": 6.96933962264151,
              "p90Words": 11,
              "maxWords": 29,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches ST-Quelldokument liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/Mathematik_FLP_Gym_01_07_2019.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichem PDF sind erfasst",
                    "passed": true,
                    "details": "32/32 official Sachsen-Anhalt Kompetenzschwerpunkt passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte ST-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "32/32 official Sachsen-Anhalt Kompetenzschwerpunkt passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "424 source goals from 257 official content-competency bullets and 167 official knowledge bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "424 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 53%. Kritisch gepruefte Abweichung: 424 Source-Ziele sind plausibel: Sachsen-Anhalt wird bewusst zeilennah aus 257 inhaltsbezogenen Kompetenzzeilen und 167 Grundlegende-Wissensbestaende-Zeilen extrahiert; die hohe Zahl ist eine Folge der amtlichen Tabellenstruktur."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "424 Source-Ziele liegen vor; MAPPING-3 laeuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "424/424 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 424/424; Mappings: 424/424; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "cced401d-58d5-4832-b010-3b3466d0655b",
            "title": "DE-TH - Mathematik Gymnasiale Oberstufe (Thueringen, Lehrplan Gymnasium 2018/2025 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Mathematik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/TH/upper-secondary/source-extraction/DE_TH_MATHEMATIK_SEKII_LEHRPLAN_GYMNASIUM_2018_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH_GYM_MATHEMATIK_LEHRPLAN_2018",
                "title": "Lehrplan Mathematik Gymnasium, Thueringen 2018/2019",
                "path": "curricula/DE/Gymnasium/input/TH/lp_gy_mathematik_10.04.2019_TSP.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/19980?dateiname=lp_gy_mathematik_10.04.2019_TSP.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "TH_GYM_MATHEMATIK_LEHRPLAN_2025",
                "title": "Lehrplan Mathematik Gymnasium, Thueringen 2025",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Mathematik_Entwurfsfassung2025.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/65648?dateiname=LP_GY_Mathematik_Entwurfsfassung2025.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 189,
            "passages": 8,
            "mappedSourceGoals": 189,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 189,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 11.693121693121693,
              "p90Words": 18,
              "maxWords": 37,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Thueringer Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/lp_gy_mathematik_10.04.2019_TSP.pdf; curricula/DE/Gymnasium/input/TH/LP_GY_Mathematik_Entwurfsfassung2025.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichen PDFs sind erfasst",
                    "passed": true,
                    "details": "8/8 official Thueringen passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte TH-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "8/8 official Thueringen passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "189 source goals from official competency bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "189 Source-Ziele; Vergleich HE/BW SEKII (221/316); Median 269; zulässiger 30%-Median-Korridor 188-349; Abweichung vom Median -30%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "189 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "189/189 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 189/189; Mappings: 189/189; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "25444927-45d3-486c-8e7f-39853e7de610",
            "title": "DE-TH - Mathematik Sekundarstufe I (Thueringen, Lehrplan Gymnasium 2018/2025 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Mathematik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_MATHEMATIK_SEKI_LEHRPLAN_GYMNASIUM_2018_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH_GYM_MATHEMATIK_LEHRPLAN_2025",
                "title": "Lehrplan Mathematik Gymnasium, Thueringen 2025",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Mathematik_Entwurfsfassung2025.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/65648?dateiname=LP_GY_Mathematik_Entwurfsfassung2025.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "TH_GYM_MATHEMATIK_LEHRPLAN_2018",
                "title": "Lehrplan Mathematik Gymnasium, Thueringen 2018/2019",
                "path": "curricula/DE/Gymnasium/input/TH/lp_gy_mathematik_10.04.2019_TSP.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/19980?dateiname=lp_gy_mathematik_10.04.2019_TSP.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 356,
            "passages": 17,
            "mappedSourceGoals": 356,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 83,
            "partialMappings": 273,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 9.30056179775281,
              "p90Words": 15,
              "maxWords": 38,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Thueringer Quelldokumente liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Mathematik_Entwurfsfassung2025.pdf; curricula/DE/Gymnasium/input/TH/lp_gy_mathematik_10.04.2019_TSP.pdf"
                  },
                  {
                    "id": "official-passages-present",
                    "label": "Originalpassagen aus amtlichen PDFs sind erfasst",
                    "passed": true,
                    "details": "17/17 official Thueringen passage groups extracted from PDF text."
                  },
                  {
                    "id": "snapshot-not-counted",
                    "label": "Legacy-Snapshot wird nicht als Source-Extraction gewertet",
                    "passed": true,
                    "details": "Der alte TH-Quellsnapshot bleibt nur Diagnosematerial; Source-Ziele stammen aus amtlichen PDF-Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": true,
                    "details": "17/17 official Thueringen passage groups extracted from PDF text."
                  },
                  {
                    "id": "source-goals-derived-from-passages",
                    "label": "Source-Ziele aus Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "356 source goals from official competency bullets; old snapshot goals are not counted."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "356 Source-Ziele; Vergleich HE/BW SEKI (278); Median 278; zulässiger 30%-Median-Korridor 195-361; Abweichung vom Median 28%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "356 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "356/356 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 356/356; Mappings: 356/356; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-math-sek1",
          "label": "Sekundarstufe I",
          "selectedAtomicGoals": 252,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 252,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 252,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-104",
              "status": "pass",
              "summary": "Route endpoints are visible in all relevant composition views.",
              "metrics": {
                "relevantCompositionViews": 54,
                "requiredMotivationAnchors": 1,
                "requiredTerminalAutonomyGoals": 7,
                "viewsMissingMotivationAnchors": 0,
                "viewsMissingTerminalAutonomyGoals": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 7,
                "terminalAutonomyGoalsWithExamData": 7,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        },
        {
          "scopeId": "canonical-math-sek2",
          "label": "Sekundarstufe II",
          "selectedAtomicGoals": 541,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 541,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 541,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 34,
                "terminalAutonomyGoalsWithExamData": 34,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 1038,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 9974,
            "sourceOriginalGoals": 9974,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 9974,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 9974,
            "sourceMappedToViewAtomicGoals": 9974,
            "sourceOriginalGoals": 9974,
            "sourceFullyCoveredOriginalGoals": 9974,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 459,
            "maxVisibleAtomicGoals": 648,
            "maxSourceBackedAtomicGoals": 648,
            "totalAtomicGoals": 648
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 666 upper-secondary source-to-canonical mapping edge(s), including 12 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 31,
            "sourceGoals": 4050,
            "sourceGoalsWithCourseLevel": 4050,
            "gkLkSourceGoals": 2328,
            "lkSourceGoals": 1245,
            "unspecifiedSourceGoals": 62,
            "checkedMappingEdges": 666,
            "defaultedUnspecifiedMappingEdges": 111,
            "reviewedCourseLevelExceptions": 12,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 31,
            "peerBaselineChecks": 27,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 2,
            "leafGoals": 754,
            "atomic": 754,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 37/750 ordinary atomic goals intentionally use memorization support, 64/64 primary cards are kept with origin traces, all 6 memory goals are traced, and 15 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 750,
            "noMemoryNeeded": 713,
            "memoryRequired": 37,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 64,
            "keptCards": 64,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 2,
            "visibilityCheckedMemoryRequiredGoals": 15,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 6,
            "tracedMemoryGoals": 6,
            "untracedMemoryGoals": 0,
            "deckIds": 6,
            "deckFiles": 12,
            "cardRows": 128
          },
          "details": [
            "canonical-math-full: audit report docs/qa-ci/status/memory-card-review-canonical-math-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "88 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 88
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 8915,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 8915",
            "diagnostic finding type APV-202: 8915"
          ]
        }
      ]
    },
    {
      "landscapeId": "f620c251-c1e1-41c1-b4e1-b10950b43608",
      "title": "Musik (Gymnasium, DE)",
      "subject": "Musik",
      "frameworkId": "canonical-gymnasium-music",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_MUSIK.de.json",
      "maturity": "M0",
      "goals": 76,
      "atomicGoals": 52,
      "clusterGoals": 24,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 38,
        "rawAtomicGoals": 52,
        "coveredJurisdictions": 2,
        "sourceBackedJurisdictions": 2,
        "sourceCompleteJurisdictions": 2,
        "cleanJurisdictions": 2,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 38,
        "maxSourceBackedAtomicGoals": 38,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 242,
        "sourceMappedToViewAtomicGoals": 242,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 242,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 242,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 242,
        "sourceFullyCoveredOriginalGoals": 242,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 76,
            "visibleAtomicGoals": 38,
            "visibleClusterGoals": 38,
            "viewAtomicGoals": 38,
            "sourceBackedAtomicGoals": 38,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 38,
            "sourceMappedToViewAtomicGoals": 38,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 38,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 38,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 38,
            "sourceFullyCoveredOriginalGoals": 38,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 76,
            "visibleAtomicGoals": 38,
            "visibleClusterGoals": 38,
            "viewAtomicGoals": 38,
            "sourceBackedAtomicGoals": 38,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 204,
            "sourceMappedToViewAtomicGoals": 204,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 204,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 204,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 204,
            "sourceFullyCoveredOriginalGoals": 204,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 2,
        "completeSources": 2,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "a00d70bf-3d3c-58fc-af4f-881b29635c2e",
            "title": "Musik (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Musik",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_MUSIK_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Musik",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Musik.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/musik",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 204,
            "passages": 48,
            "mappedSourceGoals": 204,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 9,
            "partialMappings": 195,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 20.03921568627451,
              "p90Words": 29,
              "maxWords": 125,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "5722fe5c-02d4-5fff-977b-11461ed963fe",
                  "topicCode": "J11",
                  "words": 125,
                  "text": "setzen mindestens eine der drei folgenden Kompetenzerwartungen um: - Die Schülerinnen und Schüler wählen ein inner- oder außerschulisches Ensemble, analysier..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Musik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Musik.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Musik-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 48/48 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Musik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "204 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "204/204 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 204/204; Mappings: 204/204; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a8c23058-6998-49f2-9f3b-a85e951d5ab0",
            "title": "Musik Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Musik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_MUSIK_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Musik Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_MUSIK.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula/gymnasiale-oberstufe/musik",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 38,
            "passages": 24,
            "mappedSourceGoals": 38,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 38,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.157894736842104,
              "p90Words": 14,
              "maxWords": 17,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Musik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_MUSIK.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Musik-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 24/24 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Musik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "38 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "38/38 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 38/38; Mappings: 38/38; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 76,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "warn",
          "summary": "2/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 2,
            "emptySourceJurisdictions": 14,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 242,
            "sourceOriginalGoals": 242,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 242,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "2/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 2,
            "sourceBackedJurisdictions": 2,
            "sourceCompleteJurisdictions": 2,
            "fullCoverageJurisdictions": 2,
            "uncoveredJurisdictions": 14,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 242,
            "sourceMappedToViewAtomicGoals": 242,
            "sourceOriginalGoals": 242,
            "sourceFullyCoveredOriginalGoals": 242,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 2,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 38,
            "maxSourceBackedAtomicGoals": 38,
            "totalAtomicGoals": 38
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 38 upper-secondary source-to-canonical mapping edge(s), including 8 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 2,
            "sourceGoals": 38,
            "sourceGoalsWithCourseLevel": 38,
            "gkLkSourceGoals": 30,
            "lkSourceGoals": 8,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 38,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 8,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 2,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "7f6fc60c-9fcc-4cc2-b07e-f897a1d0338a",
      "title": "Physik (Gymnasium, DE)",
      "subject": "Physik",
      "frameworkId": "canonical-gymnasium-physics",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_PHYSIK.de.json",
      "maturity": "M6",
      "goals": 585,
      "atomicGoals": 497,
      "clusterGoals": 88,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 389,
        "rawAtomicGoals": 497,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 381,
        "maxSourceBackedAtomicGoals": 381,
        "maxAtomicCoveragePercent": 97.9,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 6342,
        "sourceMappedToViewAtomicGoals": 6342,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 6342,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 6342,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 6342,
        "sourceFullyCoveredOriginalGoals": 6342,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 585,
            "visibleAtomicGoals": 200,
            "visibleClusterGoals": 385,
            "viewAtomicGoals": 200,
            "sourceBackedAtomicGoals": 200,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 265,
            "sourceMappedToViewAtomicGoals": 265,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 265,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 265,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 265,
            "sourceFullyCoveredOriginalGoals": 265,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 426,
            "atomicCoveragePercent": 51.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 322,
            "sourceMappedToViewAtomicGoals": 322,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 322,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 322,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 322,
            "sourceFullyCoveredOriginalGoals": 322,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 456,
            "visibleAtomicGoals": 257,
            "visibleClusterGoals": 199,
            "viewAtomicGoals": 257,
            "sourceBackedAtomicGoals": 257,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 296,
            "sourceMappedToViewAtomicGoals": 296,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 296,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 296,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 296,
            "sourceFullyCoveredOriginalGoals": 296,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 303,
            "atomicCoveragePercent": 66.1,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 175,
            "sourceMappedToViewAtomicGoals": 175,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 175,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 175,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 175,
            "sourceFullyCoveredOriginalGoals": 175,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 489,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 175,
            "sourceMappedToViewAtomicGoals": 175,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 175,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 175,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 175,
            "sourceFullyCoveredOriginalGoals": 175,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 489,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 154,
            "sourceMappedToViewAtomicGoals": 154,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 154,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 154,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 154,
            "sourceFullyCoveredOriginalGoals": 154,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 289,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 187,
            "sourceMappedToViewAtomicGoals": 187,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 187,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 187,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 187,
            "sourceFullyCoveredOriginalGoals": 187,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 453,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 169,
            "sourceMappedToViewAtomicGoals": 169,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 169,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 169,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 169,
            "sourceFullyCoveredOriginalGoals": 169,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 338,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 282,
            "sourceMappedToViewAtomicGoals": 282,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 282,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 282,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 282,
            "sourceFullyCoveredOriginalGoals": 282,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 246,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 282,
            "sourceMappedToViewAtomicGoals": 282,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 282,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 282,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 282,
            "sourceFullyCoveredOriginalGoals": 282,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 319,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 285,
            "sourceMappedToViewAtomicGoals": 285,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 285,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 285,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 285,
            "sourceFullyCoveredOriginalGoals": 285,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 503,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 193,
            "sourceMappedToViewAtomicGoals": 193,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 193,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 193,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 193,
            "sourceFullyCoveredOriginalGoals": 193,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 512,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 1524,
            "sourceMappedToViewAtomicGoals": 1524,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 1524,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 1524,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 1524,
            "sourceFullyCoveredOriginalGoals": 1524,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 503,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 594,
            "sourceMappedToViewAtomicGoals": 594,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 594,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 594,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 594,
            "sourceFullyCoveredOriginalGoals": 594,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 436,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 962,
            "sourceMappedToViewAtomicGoals": 962,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 962,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 962,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 962,
            "sourceFullyCoveredOriginalGoals": 962,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 513,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 585,
            "visibleAtomicGoals": 381,
            "visibleClusterGoals": 204,
            "viewAtomicGoals": 381,
            "sourceBackedAtomicGoals": 381,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 477,
            "sourceMappedToViewAtomicGoals": 477,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 477,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 477,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 477,
            "sourceFullyCoveredOriginalGoals": 477,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 513,
            "atomicCoveragePercent": 97.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 25,
        "completeSources": 25,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "6759f46a-5642-41f7-8dc7-71fd1c335855",
            "title": "DE-BB - Physik Oberstufe (Brandenburg, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/source-extraction/DE_BB_PHYSIK_SEKII_RLP_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RLP-GOST-2022",
                "title": "Rahmenlehrplan Berlin-Brandenburg Gymnasiale Oberstufe Teil C Physik 2022",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2022_Physik.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2022_Physik.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 175,
            "passages": 20,
            "mappedSourceGoals": 175,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 175,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.451428571428571,
              "p90Words": 9,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": []
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "175 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -20%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": []
              }
            ]
          },
          {
            "sourceLandscapeId": "8e54a9e6-dd9d-4f5d-a632-734b4ef5c754",
            "title": "DE-BE - Physik Oberstufe (Berlin, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/source-extraction/DE_BE_PHYSIK_SEKII_RLP_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RLP-GOST-2022",
                "title": "Rahmenlehrplan Berlin-Brandenburg Gymnasiale Oberstufe Teil C Physik 2022",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2022_Physik.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2022_Physik.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 175,
            "passages": 20,
            "mappedSourceGoals": 175,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 175,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.451428571428571,
              "p90Words": 9,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": []
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "175 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -20%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": []
              }
            ]
          },
          {
            "sourceLandscapeId": "eee2dc63-f96b-42c3-a2c9-b906432ccf5d",
            "title": "Physik Kursstufe (Baden-Wuerttemberg, BP2016 V2 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_PHYSIK_SEKII_BP2016_V2.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-PH-V2",
                "title": "Bildungsplan 2016 Gymnasium Physik Baden-Wuerttemberg, ueberarbeitete Fassung vom 25. Maerz 2022",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_PH_V2.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_PH.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 164,
            "passages": 24,
            "mappedSourceGoals": 164,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 64,
            "partialMappings": 100,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 16.53048780487805,
              "p90Words": 27,
              "maxWords": 46,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "bw-phys-sekii-3-4-6-b07-a01-f66a6409",
                  "topicCode": "3.4.6",
                  "words": 46,
                  "text": "erläutern, dass messbare Eigenschaften von Objekten der klassischen Physik bereits vor ihrer Messung real vorliegen und dass der Wert der Messung unabhängig ..."
                },
                {
                  "id": "bw-phys-sekii-3-6-6-b08-a01-9fdc2586",
                  "topicCode": "3.6.6",
                  "words": 46,
                  "text": "erläutern, dass messbare Eigenschaften von Objekten der klassischen Physik bereits vor ihrer Messung real vorliegen und dass der Wert der Messung unabhängig ..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Physik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_PH_V2.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten BW-Physik-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "24/24 Bereiche; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Kompetenzbereich hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Bereiche: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_PH_V2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Physik-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "164 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "164 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "164/164 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 164/164; Mappings: 164/164; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "3f58b4cf-2b02-4ae0-bb0f-8d8ab6d7f4f1",
            "title": "Physik Sekundarstufe I (Baden-Wuerttemberg, BP2016 V2 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_PHYSIK_SEKI_BP2016_V2.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-PH-V2",
                "title": "Bildungsplan 2016 Gymnasium Physik Baden-Wuerttemberg, ueberarbeitete Fassung vom 25. Maerz 2022",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_PH_V2.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_PH.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 101,
            "passages": 14,
            "mappedSourceGoals": 101,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 39,
            "partialMappings": 62,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 13.306930693069306,
              "p90Words": 21,
              "maxWords": 25,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Physik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_PH_V2.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten BW-Physik-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "14/14 Bereiche; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Kompetenzbereich hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Bereiche: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_PH_V2.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Physik-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "101 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "101 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "101/101 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 101/101; Mappings: 101/101; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "42c2f7e3-91b4-5de8-bef0-d563440e9d52",
            "title": "DE-BY - Physik Gymnasium (Bayern, LehrplanPLUS Source-Extraction)",
            "jurisdiction": "DE-BY",
            "subject": "Physik",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_PHYSIK_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "LEHRPLANPLUS_PHYSIK_GYMNASIUM",
                "title": "LehrplanPLUS Gymnasium Bayern - Physik",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Physik.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/physik",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 296,
            "passages": 42,
            "mappedSourceGoals": 296,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 21,
            "partialMappings": 275,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "296 BY-Physik-Source-Ziele liegen zwischen BW (265) und HE (322) und verletzen die 30-Prozent-Abweichungsheuristik nicht.",
              "rationale": "296 BY-Physik-Source-Ziele liegen zwischen BW (265) und HE (322) und verletzen die 30-Prozent-Abweichungsheuristik nicht.",
              "assessment": "plausible"
            },
            "sourceGoalGranularity": {
              "averageWords": 35.347972972972975,
              "p90Words": 56,
              "maxWords": 92,
              "longGoals": 64,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "201c41b6-b470-5d41-9de3-b8a17b0102ef",
                  "topicCode": "Ph12-EA.1",
                  "words": 92,
                  "text": "beschreiben, insbesondere auch in alltagsrelevanten Kontexten, quantitativ die Bewegung geladener Teilchen in homogenen elektrischen und magnetischen Feldern..."
                },
                {
                  "id": "7130b717-d746-5908-ad49-3da5e17d8e94",
                  "topicCode": "Ph12-GA.1",
                  "words": 84,
                  "text": "beschreiben, insbesondere auch in alltagsrelevanten Kontexten, die Bewegung geladener Teilchen in homogenen elektrischen Längsfeldern sowie auf Kreisbahnen i..."
                },
                {
                  "id": "49413a64-28bc-5475-99ea-efbc049f841b",
                  "topicCode": "Ph12-GA.3",
                  "words": 83,
                  "text": "beurteilen am Beispiel elektromagnetischer Wellen im Alltag vorgegebene Argumentationen, z. B. zum Umgang mit Mobiltelefonen, hinsichtlich ihrer Vertrauenswü..."
                },
                {
                  "id": "21b6d5fe-83f8-5a02-8a01-9d5ee36964c5",
                  "topicCode": "Ph12-EA.3",
                  "words": 83,
                  "text": "beurteilen am Beispiel elektromagnetischer Wellen im Alltag vorgegebene Argumentationen, z. B. zum Umgang mit Mobiltelefonen, hinsichtlich ihrer Vertrauenswü..."
                },
                {
                  "id": "d5355d5d-1db0-5a96-b769-c855fa127daf",
                  "topicCode": "Ph13-GA.4",
                  "words": 83,
                  "text": "erläutern ausgehend vom prinzipiellen Aufbau eines Kernreaktors seine grundlegende Funktionsweise. Vor dem Hintergrund unterschiedlicher Meinungen in der Ges..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte LehrplanPLUS-Physikquelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Physik.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Alle zieltragenden LehrplanPLUS-Physik-Lernbereiche sind als Passagen extrahiert",
                    "passed": true,
                    "details": "Erfasst: 42/42 Passagen; Sek I: 13, Sek II: 29."
                  },
                  {
                    "id": "no-legacy-snapshot-counted",
                    "label": "Kein alter Pilot-Quellsnapshot wird als Passage-Extraction gewertet",
                    "passed": true,
                    "details": "Verwendet wird curricula/DE/Gymnasium/input/BY/gymnasium/Physik.json als strukturierte LehrplanPLUS-Quelle; source-json/*.snapshot-Dateien werden nicht gezählt."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den LehrplanPLUS-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "296 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-text-present",
                    "label": "Jedes Source-Ziel enthält den LehrplanPLUS-Originaltext",
                    "passed": true,
                    "details": "Ohne Text: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "296 Source-Ziele; Vergleich HE/BW SEKI (101/48) + SEKII (164/274); Median 294; zulässiger 30%-Median-Korridor 206-381; Abweichung vom Median 1%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "296 Source-Ziele liegen vor; MAPPING-3 kann gegen diese Source-Extraction-IDs laufen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "6cf49ad5-537a-45ee-848c-b114fd3c57df",
            "title": "DE-HB - Physik Sekundarstufe I (Bremen, Bildungsplan 2006/2022 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/source-extraction/DE_HB_PHYSIK_SEKI_BILDUNGSPLAN_2006_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB_NW_GYM_2006",
                "title": "Bildungsplan Naturwissenschaften, Biologie, Chemie, Physik Gymnasium 5-10 Bremen 2006",
                "path": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_10_2006.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/06-12-06_nat_gy.pdf",
                "landingUrl": "https://www.lis.bremen.de/schulqualitaet/bildungsplaene/sekundarbereich-i-21953",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "HB_NW_GYM_2022_RESTRICTION",
                "title": "Anlage 239/2022 zur eingeschränkten Gültigkeit auf Jahrgangsstufen 5-9",
                "path": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_9_Einschraenkungen_2022.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_Naturwiss_2006_inhalt_Einschr%C3%A4nkungen.pdf",
                "landingUrl": "https://www.lis.bremen.de/schulqualitaet/bildungsplaene/sekundarbereich-i-21953",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 68,
            "passages": 7,
            "mappedSourceGoals": 68,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 35,
            "partialMappings": 33,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "68 Source-Ziele statt 11 im alten Snapshot. Die Anzahl ist fachlich plausibel: Bremen Sek I ist durch Anlage 239/2022 eng zugeschnitten; Energie und Mechanik werden in die Gymnasiale Oberstufe verschoben. Vergleich geprüfter Sek-I-Physik-Spuren: HE 48, BW 101, HH 128, MV 142, BY 296."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.411764705882353,
              "p90Words": 10,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Bremer Sek-I-Physik-Quellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_10_2006.pdf; curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_9_Einschraenkungen_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle aktuell gültigen Bremer Sek-I-Physik-Themen sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "7/7 Themen; Energie und Mechanik sind laut Anlage 239/2022 nicht mehr Sek-I-Spur."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quellen: curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_10_2006.pdf; curricula/DE/Gymnasium/input/HB/Naturwissenschaften_Gymnasium_5_9_Einschraenkungen_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Bremer Sek-I-Physik-Kompetenzbullets wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "68 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "68 Source-Ziele; Vergleich HE/BW SEKI (101/48); Median 75; zulässiger 30%-Median-Korridor 53-96; Abweichung vom Median -9%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "68 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "68/68 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 68/68; Mappings: 68/68; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "10228ad5-6cc9-4e93-8436-c47f8b0b488a",
            "title": "Physik Oberstufe (Bremen, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HB/upper-secondary/source-extraction/DE_HB_PHYSIK_SEKII_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BILDUNGSPLAN-2022",
                "title": "Bildungsplan Physik Gymnasiale Oberstufe Bremen 2022",
                "path": "curricula/DE/Gymnasium/input/HB/GyO_Physik_2022.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/GyO_Physik_2022.pdf",
                "landingUrl": "https://www.lis.bremen.de/schulqualitaet/bildungsplaene/sekundarbereich-ii-allgemeinbildend-21954",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 214,
            "passages": 10,
            "mappedSourceGoals": 214,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 146,
            "partialMappings": 68,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.009345794392523,
              "p90Words": 10,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Physik-Quelle Bremen liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/GyO_Physik_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Bremer Physik-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "10/10 Bereiche; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HB/GyO_Physik_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Bremer Physik-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "214 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "214 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -2%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "214 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "214/214 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 214/214; Mappings: 214/214; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "24f2ca0f-b94a-444e-bb70-677cb6f85c02",
            "title": "Physik Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_PHYSIK_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "KC2024",
                "title": "Kerncurriculum Physik gymnasiale Oberstufe Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/kernkurriculum_gymnasiale_oberstufe-physik.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-physik.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 274,
            "passages": 21,
            "mappedSourceGoals": 274,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 198,
            "partialMappings": 76,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.726277372262774,
              "p90Words": 13,
              "maxWords": 37,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Physik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/kernkurriculum_gymnasiale_oberstufe-physik.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Physik-Themenfelder sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "21/21 Themenfelder; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jedes Themenfeld hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Themenfelder: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HE/upper-secondary/kernkurriculum_gymnasiale_oberstufe-physik.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Physik-Lehrplanpassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "274 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-encoding-clean",
                    "label": "Source-Ziele enthalten keine kaputten Umlaute oder PDF-Private-Use-Zeichen",
                    "passed": true,
                    "details": "Auffällige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "274 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "274/274 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 274/274; Mappings: 274/274; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "996d097a-cac2-4b5f-979a-b3a0b9803265",
            "title": "Physik Sekundarstufe I (Hessen, G9)",
            "jurisdiction": "DE-HE",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-extraction/DE_HE_PHYSIK_SEKI_G9.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "G9",
                "title": "Lehrplan Physik Gymnasium Hessen G9",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-physik.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g9-physik.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 48,
            "passages": 12,
            "mappedSourceGoals": 48,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 39,
            "partialMappings": 9,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 12.083333333333334,
              "p90Words": 19,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Physik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-physik.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Physik-Themenfelder sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "12/12 Themenfelder; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jedes Themenfeld hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Themenfelder: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HE/lower-secondary/g9-physik.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Physik-Lehrplanpassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "48 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-encoding-clean",
                    "label": "Source-Ziele enthalten keine kaputten Umlaute oder PDF-Private-Use-Zeichen",
                    "passed": true,
                    "details": "Auffällige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "48 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "48/48 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 48/48; Mappings: 48/48; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "cc3245a5-2980-4019-aa51-84904e073195",
            "title": "Physik Sekundarstufe I (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_PHYSIK_SEKI_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BILDUNGSPLAN-2022",
                "title": "Bildungsplan Physik Sekundarstufe I Hamburg 2022",
                "path": "curricula/DE/Gymnasium/input/HH/physik-gym-seki-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123488/8c3d4d03adf8ddad189172bef45ab665/physik-gym-seki-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 128,
            "passages": 8,
            "mappedSourceGoals": 128,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 65,
            "partialMappings": 63,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Hamburg Sek I wird gegen die granulare BW-Sek-I-Spur als naechste passende Peer-Spur plausibilisiert: 128 liegt innerhalb des 30%-Korridors zu BW 101. Der HE-G9-Wert 48 ist eine deutlich grobere Unterrichtsinhaltszeilen-Extraction und wird hier nicht als alleiniger Granularitaetsanker verwendet."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.3984375,
              "p90Words": 10,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Physik-Quelle Hamburg Sek I liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/physik-gym-seki-data.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Hamburger Physik-Sek-I-Themenbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "8/8 Bereiche; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HH/physik-gym-seki-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Hamburger Physik-Sek-I-Anforderungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "128 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "128 Source-Ziele; Vergleich HE/BW SEKI (101/48); Median 75; zulässiger 30%-Median-Korridor 53-96; Abweichung vom Median 72%. Kritisch gepruefte Abweichung: Hamburg Sek I wird gegen die granulare BW-Sek-I-Spur als naechste passende Peer-Spur plausibilisiert: 128 liegt innerhalb des 30%-Korridors zu BW 101. Der HE-G9-Wert 48 ist eine deutlich grobere Unterrichtsinhaltszeilen-Extraction und wird hier nicht als alleiniger Granularitaetsanker verwendet."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "128 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "128/128 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 128/128; Mappings: 128/128; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b400d5b6-7b13-4a64-881d-7416dcf01785",
            "title": "Physik Studienstufe (Hamburg, Bildungsplan 2022 Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/source-extraction/DE_HH_PHYSIK_SEKII_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BILDUNGSPLAN-2022",
                "title": "Bildungsplan Studienstufe Physik Hamburg 2022",
                "path": "curricula/DE/Gymnasium/input/HH/physik-gyo-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123094/2691efabaaf2679cd7dd970a95a3c748/physik-gyo-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 154,
            "passages": 10,
            "mappedSourceGoals": 154,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 91,
            "partialMappings": 63,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.623376623376624,
              "p90Words": 10,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Physik-Quelle Hamburg liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/physik-gyo-2022-data.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten Hamburger Physik-Studienstufenbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "10/10 Bereiche; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/HH/physik-gyo-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Hamburger Physik-Inhalten wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "154 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "154 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -30%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "154 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "154/154 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 154/154; Mappings: 154/154; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f66821d1-64a5-428d-a826-36990b6f1e0f",
            "title": "DE-MV - Physik Oberstufe (Mecklenburg-Vorpommern, Rahmenplan 2022 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/source-extraction/DE_MV_PHYSIK_SEKII_RAHMENPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-MV-PHYSIK-SEKII-RAHMENPLAN-2022",
                "title": "Rahmenplan für die Qualifikationsphase der gymnasialen Oberstufe Physik Mecklenburg-Vorpommern",
                "path": "curricula/DE/Gymnasium/input/MV/Physik_Gymnasium_11_12_2022.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_PHYS_SEK2_Erprobungsfassung.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 143,
            "passages": 12,
            "mappedSourceGoals": 143,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 5,
            "partialMappings": 138,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "143 Source-Ziele statt 15 im alten Snapshot; plausibilisiert gegen HE/BW/HB/SH/RP/NRW = 164/274/214/169/193/187 Source-Ziele."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.706293706293707,
              "p90Words": 9,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche MV-Physik-Rahmenplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Physik_Gymnasium_11_12_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Verbindliche Themen-Tabellen wurden aus dem amtlichen Rahmenplan erfasst",
                    "passed": true,
                    "details": "12 Passagegruppen aus SekII."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/MV/Physik_Gymnasium_11_12_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen MV-Physik-Inhalten wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "143 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "143 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -35%. Kritisch gepruefte Abweichung: 143 Source-Ziele statt 15 im alten Snapshot; plausibilisiert gegen HE/BW/HB/SH/RP/NRW = 164/274/214/169/193/187 Source-Ziele."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "143 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "143/143 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 143/143; Mappings: 143/143; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "27da5587-bef3-49ad-9fec-3907253b85bd",
            "title": "DE-MV - Physik Sekundarstufe I (Mecklenburg-Vorpommern, Rahmenplan 2022 Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_PHYSIK_SEKI_RAHMENPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-MV-PHYSIK-SEKI-RAHMENPLAN-2022",
                "title": "Rahmenplan für die Jahrgangsstufen 7 bis 10 Gymnasium Physik Mecklenburg-Vorpommern",
                "path": "curricula/DE/Gymnasium/input/MV/Physik_Gymnasium_7_10_2022.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_PHYS_Gym_Ges_7_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 142,
            "passages": 17,
            "mappedSourceGoals": 142,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 4,
            "partialMappings": 138,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "142 Source-Ziele statt 21 im alten Snapshot; plausibilisiert gegen HE/BW/HH/BB/BE = 48/278/128/246/258 Source-Ziele."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.802816901408451,
              "p90Words": 11,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche MV-Physik-Rahmenplan-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Physik_Gymnasium_7_10_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Verbindliche Themen-Tabellen wurden aus dem amtlichen Rahmenplan erfasst",
                    "passed": true,
                    "details": "17 Passagegruppen aus SekI."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/MV/Physik_Gymnasium_7_10_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen MV-Physik-Inhalten wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "142 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "142 Source-Ziele; Vergleich HE/BW SEKI (101/48); Median 75; zulässiger 30%-Median-Korridor 53-96; Abweichung vom Median 91%. Kritisch gepruefte Abweichung: 142 Source-Ziele statt 21 im alten Snapshot; plausibilisiert gegen HE/BW/HH/BB/BE = 48/278/128/246/258 Source-Ziele."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "142 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "142/142 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 142/142; Mappings: 142/142; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "730a6dbb-7ddb-486b-8ac8-dd9e58e3d113",
            "title": "Physik Oberstufe (Niedersachsen, KC 2022 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/source-extraction/DE_NI_PHYSIK_SEKII_KC2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "KC2022",
                "title": "Kerncurriculum Physik gymnasiale Oberstufe Niedersachsen 2022",
                "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/kerncurriculum_gymnasiale_oberstufe-physik_2022.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=363",
                "landingUrl": "https://cuvo.nibis.de/cuvo.php?k0_0=Fach&k0_1=Dokumentenart&p=search&v0_0=Physik&v0_1=Kerncurriculum",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 154,
            "passages": 19,
            "mappedSourceGoals": 154,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 92,
            "partialMappings": 62,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 8.766233766233766,
              "p90Words": 11,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Physik-Quelle Niedersachsen liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/kerncurriculum_gymnasiale_oberstufe-physik_2022.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten NI-Physik-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "19/19 Bereiche; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NI/upper-secondary/kerncurriculum_gymnasiale_oberstufe-physik_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen NI-Physik-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "154 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "154 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -30%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "154 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "154/154 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 154/154; Mappings: 154/154; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8abb46ff-072b-41b7-9d70-0334cb5a1a6c",
            "title": "DE-NW - Physik Oberstufe (Nordrhein-Westfalen, KLP 2022 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/source-extraction/DE_NW_PHYSIK_SEKII_KLP_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "KLP-PHYSIK-GOST-2022",
                "title": "Kernlehrplan Physik für die Sekundarstufe II Gymnasium/Gesamtschule in Nordrhein-Westfalen",
                "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_ph_2022_06_07.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/gost_klp_ph_2022_06_07.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 187,
            "passages": 30,
            "mappedSourceGoals": 187,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 8,
            "partialMappings": 179,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "187 Source-Ziele; plausibel im geprüften Physik-Sek-II-Korridor HE/BW/HB/SH/RP (164/274/214/169/193) und deutlich über dem alten 37-Ziele-Pilot-Snapshot."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.037433155080214,
              "p90Words": 21,
              "maxWords": 31,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche NRW-Physik-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_ph_2022_06_07.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "EF-, GK- und LK-Kompetenzpassagen wurden aus dem amtlichen KLP extrahiert",
                    "passed": true,
                    "details": "30 Passagegruppen aus 2 EF-, 4 GK- und 4 LK-Inhaltsfeldern."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/NW/upper-secondary/gost_klp_ph_2022_06_07.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen NRW-Physik-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "187 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "187 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -15%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "187 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "187/187 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 187/187; Mappings: 187/187; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "eb32f91f-5f6f-4e13-a969-f53a0e92431f",
            "title": "DE-RP - Physik Sekundarstufe II (Rheinland-Pfalz, MSS Source-Extraction Draft)",
            "jurisdiction": "DE-RP",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/source-extraction/DE_RP_PHYSIK_SEKII_MSS_SOURCE_EXTRACTION_DRAFT.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MSS-PHYSIK",
                "title": "Lehrplan Physik Grund- und Leistungsfach in der gymnasialen Oberstufe (Mainzer Studienstufe)",
                "path": "curricula/DE/Gymnasium/input/RP/Physik_Sekundarstufe_II_MSS.pdf",
                "url": "https://bildung.rlp.de/lehrplaene/?tx_rlpbase_download%5Baction%5D=download&tx_rlpbase_download%5Bcontroller%5D=Download&tx_rlpbase_download%5Bitem%5D=56533&type=432522&cHash=8fce7a6ab1e04366e45411285d00bbff",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 193,
            "passages": 46,
            "mappedSourceGoals": 193,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 192,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Accepted after final inventory audit against the official MSS PDF: all concrete Einführungsphase, Grundfach and Leistungsfach content blocks are represented. The only unextracted block is Individuelles Thema, which intentionally provides no concrete physics content."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.020725388601036,
              "p90Words": 9,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche RP-Physik-MSS-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Physik_Sekundarstufe_II_MSS.pdf"
                  },
                  {
                    "id": "qphase-passage-groups-present",
                    "label": "Einführungsphase und Q-Phasen-Passagekorridore aus amtlichen Lehrplanstellen sind angelegt",
                    "passed": true,
                    "details": "46 Passagegruppen mit PDF-Seitenreferenzen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Einführungsphase- und Q-Phasen-Source-Ziele wurden erzeugt",
                    "passed": true,
                    "details": "193 Source-Ziele"
                  },
                  {
                    "id": "full-source-inventory-complete",
                    "label": "Finaler RP-Sek-II-Source-Inventar-Audit gegen die amtliche MSS-PDF abgeschlossen",
                    "passed": true,
                    "details": "Alle konkreten GF-/LK-Inhaltsbausteine sind als Source-Ziele erfasst; Individuelles Thema bleibt bewusst ausgeschlossen, weil dort keine spezifischen Physikinhalte vorgegeben sind."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Passagegruppe",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "193 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -12%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "193 Source-Ziele liegen aus dem final auditierten RP-Inventar vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle vorhandenen Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "193/193 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 193/193; Mappings: 193/193; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f1a2c733-b994-4db3-9dd6-54ffe544002b",
            "title": "Physik Oberstufe (Schleswig-Holstein, Fachanforderungen 2022 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/upper-secondary/source-extraction/DE_SH_PHYSIK_SEKII_FACHANFORDERUNGEN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "FACHANFORDERUNGEN-2022",
                "title": "Fachanforderungen Physik Sekundarstufe I/II Schleswig-Holstein 2022",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Physik_Sekundarstufe_2022_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/sh/faecher/physik/fachanforderungen.html?file=files/Fachanforderungen%20und%20Leitf%C3%A4den/Sekundarstufe/Fachanforderungen/Fachanforderungen%20Physik%20Sekundarstufe%20%282022%29%2C%20barrierearm.pdf&cid=16990",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 169,
            "passages": 15,
            "mappedSourceGoals": 169,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 90,
            "partialMappings": 79,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 6.236686390532545,
              "p90Words": 8,
              "maxWords": 10,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Physik-Quelle Schleswig-Holstein liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Physik_Sekundarstufe_2022_barrierearm.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten SH-Physik-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "15/15 Bereiche; fehlend: -; unerwartet: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/SH/Fachanforderungen_Physik_Sekundarstufe_2022_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen SH-Physik-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "169 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "169 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median -23%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "169 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "169/169 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 169/169; Mappings: 169/169; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "36092b29-547c-4018-8f47-97f04d786ba1",
            "title": "DE-SL - Physik Gymnasiale Oberstufe (Saarland, GOS 2023 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_PHYSIK_SEKII_GOS_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-PH-SEKII-EP-2023",
                "title": "Lehrplan Physik Einführungsphase der gymnasialen Oberstufe Saarland 2023",
                "path": "curricula/DE/Gymnasium/input/SL/LP_Ph_EP_GOS_2023.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-PH-SEKII-GK-2023",
                "title": "Lehrplan Physik Hauptphase Grundkurs der gymnasialen Oberstufe Saarland 2023",
                "path": "curricula/DE/Gymnasium/input/SL/LP_Ph_HP_GK_2023.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-PH-SEKII-LK-2023",
                "title": "Lehrplan Physik Hauptphase Leistungskurs der gymnasialen Oberstufe Saarland 2023",
                "path": "curricula/DE/Gymnasium/input/SL/LP_Ph_HP_LK_2023.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 854,
            "passages": 88,
            "mappedSourceGoals": 854,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 78,
            "partialMappings": 776,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "854 Source-Ziele statt 15 im alten Snapshot. Die Abweichung ist fachplanstrukturell plausibel: HE/BW/HB/SH/RP/NW = 274/164/214/169/193/187 Source-Ziele; Saarland trennt Einführungsphase, Grundkurs und Leistungskurs und ist bullet-kleinteilig wie die SL-Mathe-Extraction."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.898126463700235,
              "p90Words": 26,
              "maxWords": 72,
              "longGoals": 8,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "sl-phys-sekii-sl-ph-sekii-gk-2023-p47-001-8c394606",
                  "topicCode": "SL-PH-SEKII-GK-2023-P47",
                  "words": 72,
                  "text": "geben an, dass: o Atome diskrete Energiezustände haben, o ein Atom von einem Energiezustand 𝐸𝑛 in einen energetisch höherliegenden Energiezustand 𝐸𝑚 wech..."
                },
                {
                  "id": "sl-phys-sekii-sl-ph-sekii-lk-2023-p60-003-3324bb30",
                  "topicCode": "SL-PH-SEKII-LK-2023-P60",
                  "words": 61,
                  "text": "geben an, dass: o Atome diskrete Energiezustände haben, o ein Atom von einem Energiezustand 𝐸𝑛 in einen energetisch höherliegenden Energiezustand 𝐸𝑚 wech..."
                },
                {
                  "id": "sl-phys-sekii-sl-ph-sekii-gk-2023-p25-001-05ee66b6",
                  "topicCode": "SL-PH-SEKII-GK-2023-P25",
                  "words": 55,
                  "text": "führen qualitative Versuche zur Erzeugung einer Induktionsspannung durch und dokumentieren ihre Beobachtung (z.B. als arbeitsteiliges Gruppenexperiment): o Ä..."
                },
                {
                  "id": "sl-phys-sekii-sl-ph-sekii-lk-2023-p29-001-05ee66b6",
                  "topicCode": "SL-PH-SEKII-LK-2023-P29",
                  "words": 55,
                  "text": "führen qualitative Versuche zur Erzeugung einer Induktionsspannung durch und dokumentieren ihre Beobachtung (z.B. als arbeitsteiliges Gruppenexperiment): o Ä..."
                },
                {
                  "id": "sl-phys-sekii-sl-ph-sekii-lk-2023-p17-003-737ec8b0",
                  "topicCode": "SL-PH-SEKII-LK-2023-P17",
                  "words": 50,
                  "text": "lösen Aufgaben o zur Kapazität, insbesondere Berechnung von Größen bei der Veränderung einer oder mehrerer Größen am Kondensator bei abgeklemmter und angesch..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche SL-Physik-Lehrplan-PDFs liegen lokal vor",
                    "passed": true,
                    "details": "3/3 Originalquellen bereitgestellt."
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Verbindliche Kompetenzpassagen wurden aus den amtlichen Lehrplänen erfasst",
                    "passed": true,
                    "details": "88 Passagegruppen aus 3 PDF-Quellen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/LP_Ph_EP_GOS_2023.pdf; curricula/DE/Gymnasium/input/SL/LP_Ph_HP_GK_2023.pdf; curricula/DE/Gymnasium/input/SL/LP_Ph_HP_LK_2023.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen SL-Physik-Kompetenzpassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "854 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "854 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median 290%. Kritisch gepruefte Abweichung: 854 Source-Ziele statt 15 im alten Snapshot. Die Abweichung ist fachplanstrukturell plausibel: HE/BW/HB/SH/RP/NW = 274/164/214/169/193/187 Source-Ziele; Saarland trennt Einführungsphase, Grundkurs und Leistungskurs und ist bullet-kleinteilig wie die SL-Mathe-Extraction."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "854 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "854/854 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 854/854; Mappings: 854/854; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e5f66ad7-8f49-41f5-b8b2-52ab9a0ebcac",
            "title": "DE-SL - Physik Sekundarstufe I (Saarland, Gymnasium G9 2023-2026 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_PHYSIK_SEKI_GYM9_2023_2026.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-PH-SEKI-7-2023",
                "title": "Lehrplan Physik Klassenstufe 7 im neunjährigen Gymnasium Saarland 2023",
                "path": "curricula/DE/Gymnasium/input/SL/LP_PH_gym9_7_2023.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-PH-SEKI-8-NW-2024",
                "title": "Lehrplan Physik Klassenstufe 8 im neunjährigen Gymnasium Saarland 2024, naturwissenschaftlicher Zweig",
                "path": "curricula/DE/Gymnasium/input/SL/LP_PH_gym9_8_NW_Zweig_2024.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-PH-SEKI-9-NW-2024",
                "title": "Lehrplan Physik Klassenstufe 9 im neunjährigen Gymnasium Saarland 2024, naturwissenschaftlicher Zweig",
                "path": "curricula/DE/Gymnasium/input/SL/LP_PH_gym9_9_nw_Zweig_2024.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-PH-SEKI-10-NW-2026",
                "title": "Lehrplan Physik Klassenstufe 10 im neunjährigen Gymnasium Saarland 2026, naturwissenschaftlicher Zweig",
                "path": "curricula/DE/Gymnasium/input/SL/LP_PH_gym9_10_nw_Zweig_2026.pdf",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasium",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 670,
            "passages": 72,
            "mappedSourceGoals": 670,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 86,
            "partialMappings": 584,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "670 Source-Ziele statt 18 im alten Snapshot. Die Abweichung ist fachplanstrukturell plausibel: HE/BW/HH/MV/BY = 48/101/128/142/296 Source-Ziele; Saarland ist wegen jahrgangs- und zweigspezifischer Kompetenz-Bullets deutlich kleinteiliger."
            },
            "sourceGoalGranularity": {
              "averageWords": 11.65223880597015,
              "p90Words": 21,
              "maxWords": 68,
              "longGoals": 2,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "sl-phys-seki-sl-ph-seki-10-nw-2026-p29-001-6c41a56e",
                  "topicCode": "SL-PH-SEKI-10-NW-2026-P29",
                  "words": 68,
                  "text": "geben an, o dass nicht alle Atomkerne stabil sind, sondern unter Aussendung eines Teilchens in eine andere Atomart zerfallen können (Spontanzerfall), o dass ..."
                },
                {
                  "id": "sl-phys-seki-sl-ph-seki-9-nw-2024-p13-010-30c349e7",
                  "topicCode": "SL-PH-SEKI-9-NW-2024-P13",
                  "words": 52,
                  "text": "geben bei einer Sammellinse die folgenden Fälle an: o 𝑔 > 2𝑓: verkleinertes reelles Bild mit 𝑓 < 𝑏 < 2𝑓, o 𝑔 = 2𝑓: gleich großes reelles Bild mit 𝑏 =..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche SL-Physik-Lehrplan-PDFs liegen lokal vor",
                    "passed": true,
                    "details": "4/4 Originalquellen bereitgestellt."
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Verbindliche Kompetenzpassagen wurden aus den amtlichen Lehrplänen erfasst",
                    "passed": true,
                    "details": "72 Passagegruppen aus 4 PDF-Quellen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/LP_PH_gym9_7_2023.pdf; curricula/DE/Gymnasium/input/SL/LP_PH_gym9_8_NW_Zweig_2024.pdf; curricula/DE/Gymnasium/input/SL/LP_PH_gym9_9_nw_Zweig_2024.pdf; curricula/DE/Gymnasium/input/SL/LP_PH_gym9_10_nw_Zweig_2026.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen SL-Physik-Kompetenzpassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "670 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "670 Source-Ziele; Vergleich HE/BW SEKI (101/48); Median 75; zulässiger 30%-Median-Korridor 53-96; Abweichung vom Median 799%. Kritisch gepruefte Abweichung: 670 Source-Ziele statt 18 im alten Snapshot. Die Abweichung ist fachplanstrukturell plausibel: HE/BW/HH/MV/BY = 48/101/128/142/296 Source-Ziele; Saarland ist wegen jahrgangs- und zweigspezifischer Kompetenz-Bullets deutlich kleinteiliger."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "670 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "670/670 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 670/670; Mappings: 670/670; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e1213911-abd2-4a1e-88ca-7a78a58c2189",
            "title": "DE-SN - Physik Jahrgangsstufen 11/12 (Sachsen, Lehrplan Gymnasium 2025 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SN/upper-secondary/source-extraction/DE_SN_PHYSIK_SEKII_LEHRPLAN_GYMNASIUM_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-PH-2025",
                "title": "Lehrplan Gymnasium Physik Sachsen 2025",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-physik-sachsen-2025.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/102",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 318,
            "passages": 39,
            "mappedSourceGoals": 318,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 6,
            "partialMappings": 312,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "318 Source-Ziele statt 32 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: BB/BE/BW/HB/HE/NI/SH/RP/NW = 175/175/164/214/274/154/169/193/187 Source-Ziele; Sachsen trennt GK und LK im selben Lehrplan und wird mit Kursniveau-Tags ausgewertet."
            },
            "sourceGoalGranularity": {
              "averageWords": 17.17924528301887,
              "p90Words": 28,
              "maxWords": 41,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Sachsen-Physik-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "1/1 Originalquelle bereitgestellt: curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-physik-sachsen-2025.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Verbindliche Lern- und Wahlbereiche wurden aus dem amtlichen Lehrplan erfasst",
                    "passed": true,
                    "details": "39 Passagegruppen aus dem PDF-Lehrplan."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-physik-sachsen-2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Sachsen-Physik-Kompetenzpassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "318 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "318 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median 45%. Kritisch gepruefte Abweichung: 318 Source-Ziele statt 32 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: BB/BE/BW/HB/HE/NI/SH/RP/NW = 175/175/164/214/274/154/169/193/187 Source-Ziele; Sachsen trennt GK und LK im selben Lehrplan und wird mit Kursniveau-Tags ausgewertet."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "318 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "318/318 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 318/318; Mappings: 318/318; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "d2e1fbb7-9e42-49a7-a07b-a7973156da12",
            "title": "DE-SN - Physik Sekundarstufe I (Sachsen, Lehrplan Gymnasium 2025 Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_PHYSIK_SEKI_LEHRPLAN_GYMNASIUM_2025.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-PH-2025",
                "title": "Lehrplan Gymnasium Physik Sachsen 2025",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-physik-sachsen-2025.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/102",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 276,
            "passages": 35,
            "mappedSourceGoals": 276,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 21,
            "partialMappings": 255,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "276 Source-Ziele statt 27 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: HE/BW/HB/HH/MV/BY = 48/101/68/128/142/296 Source-Ziele; Sachsen wird aus operatorbezogenen Lernbereichszeilen plus deren fachlichen Unteraspekten extrahiert und liegt damit im erwartbaren Korridor."
            },
            "sourceGoalGranularity": {
              "averageWords": 17.28985507246377,
              "p90Words": 25,
              "maxWords": 45,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Sachsen-Physik-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "1/1 Originalquelle bereitgestellt: curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-physik-sachsen-2025.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Verbindliche Lern- und Wahlbereiche wurden aus dem amtlichen Lehrplan erfasst",
                    "passed": true,
                    "details": "35 Passagegruppen aus dem PDF-Lehrplan."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-physik-sachsen-2025.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Sachsen-Physik-Kompetenzpassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "276 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "276 Source-Ziele; Vergleich HE/BW SEKI (101/48); Median 75; zulässiger 30%-Median-Korridor 53-96; Abweichung vom Median 270%. Kritisch gepruefte Abweichung: 276 Source-Ziele statt 27 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: HE/BW/HB/HH/MV/BY = 48/101/68/128/142/296 Source-Ziele; Sachsen wird aus operatorbezogenen Lernbereichszeilen plus deren fachlichen Unteraspekten extrahiert und liegt damit im erwartbaren Korridor."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "276 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "276/276 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 276/276; Mappings: 276/276; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "3eedae6b-7e62-4e6e-a96c-78cd6df4c4aa",
            "title": "DE-ST - Physik Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_PHYSIK_SEKI_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-PH-2022",
                "title": "Fachlehrplan Gymnasium Physik Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Physik_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Physik_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 387,
            "passages": 18,
            "mappedSourceGoals": 387,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 387,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "387 Source-Ziele statt 11 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: HE/BW/HH/MV/BY/SN = 48/101/128/142/296/276 Source-Ziele; Sachsen-Anhalt wird aus Kompetenz-, Wissens- und Experimentierpunkten des amtlichen Fachlehrplans extrahiert und darf daher deutlich ueber dem alten Mini-Snapshot liegen."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.992248062015504,
              "p90Words": 16,
              "maxWords": 34,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Sachsen-Anhalt-Physik-Fachlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "1/1 Originalquelle bereitgestellt: curricula/DE/Gymnasium/input/ST/FLP_Physik_Gym_01082022_swd.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Kompetenzschwerpunkte wurden aus dem amtlichen Fachlehrplan erfasst",
                    "passed": true,
                    "details": "18 Passagegruppen aus dem PDF-Fachlehrplan."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Physik_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Sachsen-Anhalt-Physik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "387 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "387 Source-Ziele; Vergleich HE/BW SEKI (101/48); Median 75; zulässiger 30%-Median-Korridor 53-96; Abweichung vom Median 419%. Kritisch gepruefte Abweichung: 387 Source-Ziele statt 11 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: HE/BW/HH/MV/BY/SN = 48/101/128/142/296/276 Source-Ziele; Sachsen-Anhalt wird aus Kompetenz-, Wissens- und Experimentierpunkten des amtlichen Fachlehrplans extrahiert und darf daher deutlich ueber dem alten Mini-Snapshot liegen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "387 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "387/387 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 387/387; Mappings: 387/387; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "85f23183-91d4-4eb0-ad51-aa3a03b240a8",
            "title": "DE-ST - Physik Sekundarstufe II (Sachsen-Anhalt, Fachlehrplan Gymnasium 2022 Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/ST/upper-secondary/source-extraction/DE_ST_PHYSIK_SEKII_FACHLEHRPLAN_GYMNASIUM_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-PH-2022",
                "title": "Fachlehrplan Gymnasium Physik Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Physik_Gym_01082022_swd.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/Anpassung_2022/FLP_Physik_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 575,
            "passages": 30,
            "mappedSourceGoals": 575,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 575,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "575 Source-Ziele statt 28 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: BB/BE/BW/HB/HE/NI/SH/RP/NW/SN = 175/175/221/214/274/154/169/193/187/318 Source-Ziele; Sachsen-Anhalt fuehrt gAN, eAN und Wahlpflichtfach im selben Fachlehrplan, deshalb wird die Dichte gegen diesen Korridor plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.060869565217391,
              "p90Words": 22,
              "maxWords": 68,
              "longGoals": 4,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "st-phys-sekii-st-schuljahrgange-11-12-ean-experimentalpraktikum-434-4261f05a",
                  "topicCode": "ST-schuljahrgange-11-12-ean-experimentalpraktikum",
                  "words": 68,
                  "text": "Erkenntnisgewinnungskompetenz: zu gegebenen Problemstellungen Hypothesen aufstellen und gewinnungsExperimente zu ihrer Überprüfung planen sowie selbstständig..."
                },
                {
                  "id": "st-phys-sekii-st-schuljahrgange-11-12-gan-experimentalpraktikum-154-14174774",
                  "topicCode": "ST-schuljahrgange-11-12-gan-experimentalpraktikum",
                  "words": 66,
                  "text": "Erkenntnisgewinnungskompetenz: Zu zwei gegebenen Problemstellungen Hypothesen aufstellen und gewinnungsExperimente zu ihrer Überprüfung planen sowie selbstst..."
                },
                {
                  "id": "st-phys-sekii-st-schuljahrgange-11-12-gan-quantenphysikalisches-atommodell-146-b33f842f",
                  "topicCode": "ST-schuljahrgange-11-12-gan-quantenphysikalisches-atommodell",
                  "words": 49,
                  "text": "Bewertungskompetenz: die Auswirkungen der physikalischen Weltbetrachtung mit scheinbar paradoxen Eigenschaften von Quantenobjekten wie eingeschränkter Anscha..."
                },
                {
                  "id": "st-phys-sekii-st-schuljahrgange-11-12-ean-quantenphysikalisches-atommodell-425-64861cc5",
                  "topicCode": "ST-schuljahrgange-11-12-ean-quantenphysikalisches-atommodell",
                  "words": 48,
                  "text": "Bewertungskompetenz: die Auswirkungen der physikalischen Weltbetrachtung mit scheinbar paradoxen Eigenschaften von Quantenobjekten, wie eingeschränkter Ansch..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtlicher Sachsen-Anhalt-Physik-Fachlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "1/1 Originalquelle bereitgestellt: curricula/DE/Gymnasium/input/ST/FLP_Physik_Gym_01082022_swd.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Kompetenzschwerpunkte wurden aus dem amtlichen Fachlehrplan erfasst",
                    "passed": true,
                    "details": "30 Passagegruppen aus dem PDF-Fachlehrplan."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Physik_Gym_01082022_swd.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Sachsen-Anhalt-Physik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "575 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "575 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median 163%. Kritisch gepruefte Abweichung: 575 Source-Ziele statt 28 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: BB/BE/BW/HB/HE/NI/SH/RP/NW/SN = 175/175/221/214/274/154/169/193/187/318 Source-Ziele; Sachsen-Anhalt fuehrt gAN, eAN und Wahlpflichtfach im selben Fachlehrplan, deshalb wird die Dichte gegen diesen Korridor plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "575 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "575/575 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 575/575; Mappings: 575/575; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2b1b8596-f8c5-44ba-9dec-4cccb834769a",
            "title": "DE-TH - Physik Sekundarstufe I (Thueringen, Lehrplan Gymnasium 2012 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Physik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_PHYSIK_SEKI_LEHRPLAN_GYMNASIUM_2012.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-PH-2012",
                "title": "Thüringer Lehrplan Physik 2012",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2012.pdf",
                "url": "https://www.schulportal-thueringen.de/web/guest/media/detail?tspi=2280",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 220,
            "passages": 7,
            "mappedSourceGoals": 220,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 220,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "220 Source-Ziele statt 11 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: HE/BW/HH/MV/BY/SN/ST = 48/101/128/142/296/276/387 Source-Ziele; Thüringen Sek I wird aus den Themenbereichen Klassenstufen 7/8 und 9/10 extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 12.204545454545455,
              "p90Words": 17,
              "maxWords": 130,
              "longGoals": 1,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "th-phys-seki-th-2-2-3-radioaktivitat-220-25a36bd5",
                  "topicCode": "TH-2-2-3-radioaktivitat",
                  "words": 130,
                  "text": "Selbst- und Sozialkompetenz: Eigenverantwortung für die Gestaltung und Ergebnisse des Lernprozesses. Die Ziele des Kompetenzerwerbs der beschriebenen Klassen..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Thüringen-Physik-Lehrpläne liegen lokal vor",
                    "passed": true,
                    "details": "1/1 Originalquelle(n) bereitgestellt: curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2012.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Themen- und Inhaltsbereiche wurden aus den amtlichen Lehrplänen erfasst",
                    "passed": true,
                    "details": "7 Passagegruppen aus den PDF-Lehrplänen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2012.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Thüringen-Physik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "220 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "220 Source-Ziele; Vergleich HE/BW SEKI (101/48); Median 75; zulässiger 30%-Median-Korridor 53-96; Abweichung vom Median 195%. Kritisch gepruefte Abweichung: 220 Source-Ziele statt 11 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: HE/BW/HH/MV/BY/SN/ST = 48/101/128/142/296/276/387 Source-Ziele; Thüringen Sek I wird aus den Themenbereichen Klassenstufen 7/8 und 9/10 extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "220 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "220/220 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 220/220; Mappings: 220/220; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8b6387d0-7fc8-40e4-89ca-e5049b5bc42f",
            "title": "DE-TH - Physik Sekundarstufe II (Thueringen, Lehrplan Gymnasium 2012/2024 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Physik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/TH/upper-secondary/source-extraction/DE_TH_PHYSIK_SEKII_LEHRPLAN_GYMNASIUM_2012_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-PH-2012",
                "title": "Thüringer Lehrplan Physik 2012",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2012.pdf",
                "url": "https://www.schulportal-thueringen.de/web/guest/media/detail?tspi=2280",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "TH-PH-2024",
                "title": "Thüringer Lehrplan Physik Qualifikationsphase 2024",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2024.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/63792?dateiname=LP_GY_OSt_Physik_final_2024-10-28.pdf",
                "landingUrl": "https://www.schulportal-thueringen.de/web/guest/media/detail?tspi=18005",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 257,
            "passages": 11,
            "mappedSourceGoals": 257,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 257,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "257 Source-Ziele statt 14 im alten Snapshot. Die Abweichung ist gewollt und gegen geprüfte Physik-Spuren plausibilisiert: BB/BE/BW/HB/HE/NI/SH/RP/NW/SN/ST = 175/175/221/214/274/154/169/193/187/318/575 Source-Ziele; Thüringen Sek II kombiniert Einführungsphase 2012 mit Qualifikationsphase 2024."
            },
            "sourceGoalGranularity": {
              "averageWords": 18.957198443579767,
              "p90Words": 34,
              "maxWords": 79,
              "longGoals": 7,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "th-phys-sekii-th-3-6-radioaktivitat-104-44b75906",
                  "topicCode": "TH-3-6-radioaktivitat",
                  "words": 79,
                  "text": "Selbst- und Sozialkompetenz: einer thematischen Erweiterung und theoretischen Vertiefung, 8 Sekretariat der Ständigen Konferenz der Kultusminister der Länder..."
                },
                {
                  "id": "th-phys-sekii-th-3-6-radioaktivitat-101-8d515058",
                  "topicCode": "TH-3-6-radioaktivitat",
                  "words": 66,
                  "text": "Selbst- und Sozialkompetenz: einem erhöhten Grad der Formalisierung und Mathematisierung8. Gemäß den Einheitlichen Prüfungsanforderungen für die Abiturprüfun..."
                },
                {
                  "id": "th-phys-sekii-th-4-5-thermodynamik-244-349bc463",
                  "topicCode": "TH-4-5-thermodynamik",
                  "words": 63,
                  "text": "Sach- und Methodenkompetenz: die Zusammenhänge zwischen den Zustandsgrößen p, – die Zusammenhänge zwischen V und T beschreiben und interpretieren sowie die a..."
                },
                {
                  "id": "th-phys-sekii-th-4-1-elektrische-und-magnetische-felder-136-4af674b9",
                  "topicCode": "TH-4-1-elektrische-und-magnetische-felder",
                  "words": 51,
                  "text": "Sach- und Methodenkompetenz: die Kreisbewegung geladener Teilchen im homogenen – das Zusammenwirken elektriMagnetfeld beschreiben und erklären sowie bei der ..."
                },
                {
                  "id": "th-phys-sekii-th-4-2-mechanische-und-elektromagnetische-schwingungen-und-wellen-180-615d3d30",
                  "topicCode": "TH-4-2-mechanische-und-elektromagnetische-schwingungen-und-wellen",
                  "words": 49,
                  "text": "Sach- und Methodenkompetenz: die Gleichungen zur Berechnung von Beugungsund In- – die Gleichungen zur Berechnung terferenzerscheinungen von Beugungsund Inter..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-documents-present",
                    "label": "Amtliche Thüringen-Physik-Lehrpläne liegen lokal vor",
                    "passed": true,
                    "details": "2/2 Originalquelle(n) bereitgestellt: curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2012.pdf, curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2024.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Themen- und Inhaltsbereiche wurden aus den amtlichen Lehrplänen erfasst",
                    "passed": true,
                    "details": "11 Passagegruppen aus den PDF-Lehrplänen."
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlichen PDF-Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2012.pdf, curricula/DE/Gymnasium/input/TH/LP_GY_Physik_2024.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen Thüringen-Physik-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "257 Source-Ziele"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "257 Source-Ziele; Vergleich HE/BW SEKII (164/274); Median 219; zulässiger 30%-Median-Korridor 154-284; Abweichung vom Median 17%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "257 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "257/257 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 257/257; Mappings: 257/257; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-physics-sek1",
          "label": "Sekundarstufe I",
          "selectedAtomicGoals": 75,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 75,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 75,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 1,
                "terminalAutonomyGoalsWithExamData": 1,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        },
        {
          "scopeId": "canonical-physics-sek2",
          "label": "Sekundarstufe II",
          "selectedAtomicGoals": 296,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 296,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 296,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 49,
                "terminalAutonomyGoalsWithExamData": 49,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 585,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 6342,
            "sourceOriginalGoals": 6342,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 6342,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 6342,
            "sourceMappedToViewAtomicGoals": 6342,
            "sourceOriginalGoals": 6342,
            "sourceFullyCoveredOriginalGoals": 6342,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 200,
            "maxVisibleAtomicGoals": 381,
            "maxSourceBackedAtomicGoals": 381,
            "totalAtomicGoals": 389
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 779 upper-secondary source-to-canonical mapping edge(s), including 0 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 25,
            "sourceGoals": 4006,
            "sourceGoalsWithCourseLevel": 4006,
            "gkLkSourceGoals": 1787,
            "lkSourceGoals": 1427,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 779,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 0,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 25,
            "peerBaselineChecks": 21,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 1,
            "leafGoals": 425,
            "atomic": 425,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 127/425 ordinary atomic goals intentionally use memorization support, 148/148 primary cards are kept with origin traces, all 5 memory goals are traced, and 0 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 425,
            "noMemoryNeeded": 298,
            "memoryRequired": 127,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 148,
            "keptCards": 148,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 0,
            "visibilityCheckedMemoryRequiredGoals": 0,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 5,
            "tracedMemoryGoals": 5,
            "untracedMemoryGoals": 0,
            "deckIds": 5,
            "deckFiles": 6,
            "cardRows": 235
          },
          "details": [
            "canonical-physics-full: audit report docs/qa-ci/status/memory-card-review-canonical-physics-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "69 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 69
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 6107,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 6107",
            "diagnostic finding type APV-202: 6107"
          ]
        }
      ]
    },
    {
      "landscapeId": "51b60137-46e8-5498-973e-ea38bb32f327",
      "title": "Politik und Wirtschaft (Gymnasium, DE)",
      "subject": "Politik und Wirtschaft",
      "frameworkId": "canonical-gymnasium-politics-economics",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_POLITIKWIRTSCHAFT.de.json",
      "maturity": "M6",
      "goals": 512,
      "atomicGoals": 439,
      "clusterGoals": 73,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 413,
        "rawAtomicGoals": 439,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 308,
        "maxSourceBackedAtomicGoals": 308,
        "maxAtomicCoveragePercent": 74.6,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 4169,
        "sourceMappedToViewAtomicGoals": 4169,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 4169,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 4169,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 4169,
        "sourceFullyCoveredOriginalGoals": 4169,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 239,
            "visibleAtomicGoals": 97,
            "visibleClusterGoals": 142,
            "viewAtomicGoals": 97,
            "sourceBackedAtomicGoals": 97,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 327,
            "sourceMappedToViewAtomicGoals": 327,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 327,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 327,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 327,
            "sourceFullyCoveredOriginalGoals": 327,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 119,
            "atomicCoveragePercent": 23.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 512,
            "visibleAtomicGoals": 208,
            "visibleClusterGoals": 304,
            "viewAtomicGoals": 208,
            "sourceBackedAtomicGoals": 208,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 226,
            "sourceMappedToViewAtomicGoals": 226,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 226,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 226,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 226,
            "sourceFullyCoveredOriginalGoals": 226,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 50.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 366,
            "visibleAtomicGoals": 308,
            "visibleClusterGoals": 58,
            "viewAtomicGoals": 308,
            "sourceBackedAtomicGoals": 308,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 345,
            "sourceMappedToViewAtomicGoals": 345,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 345,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 345,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 345,
            "sourceFullyCoveredOriginalGoals": 345,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 94,
            "atomicCoveragePercent": 74.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 214,
            "visibleAtomicGoals": 73,
            "visibleClusterGoals": 141,
            "viewAtomicGoals": 73,
            "sourceBackedAtomicGoals": 73,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 269,
            "sourceMappedToViewAtomicGoals": 269,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 269,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 269,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 269,
            "sourceFullyCoveredOriginalGoals": 269,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 100,
            "atomicCoveragePercent": 17.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 214,
            "visibleAtomicGoals": 73,
            "visibleClusterGoals": 141,
            "viewAtomicGoals": 73,
            "sourceBackedAtomicGoals": 73,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 269,
            "sourceMappedToViewAtomicGoals": 269,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 269,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 269,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 269,
            "sourceFullyCoveredOriginalGoals": 269,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 100,
            "atomicCoveragePercent": 17.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 200,
            "visibleAtomicGoals": 61,
            "visibleClusterGoals": 139,
            "viewAtomicGoals": 61,
            "sourceBackedAtomicGoals": 61,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 220,
            "sourceMappedToViewAtomicGoals": 220,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 220,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 220,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 220,
            "sourceFullyCoveredOriginalGoals": 220,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 89,
            "atomicCoveragePercent": 14.8,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 239,
            "visibleAtomicGoals": 109,
            "visibleClusterGoals": 130,
            "viewAtomicGoals": 109,
            "sourceBackedAtomicGoals": 109,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 311,
            "sourceMappedToViewAtomicGoals": 311,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 311,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 311,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 311,
            "sourceFullyCoveredOriginalGoals": 311,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 120,
            "atomicCoveragePercent": 26.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 305,
            "visibleAtomicGoals": 157,
            "visibleClusterGoals": 148,
            "viewAtomicGoals": 157,
            "sourceBackedAtomicGoals": 157,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 287,
            "sourceMappedToViewAtomicGoals": 287,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 287,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 287,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 287,
            "sourceFullyCoveredOriginalGoals": 287,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 181,
            "atomicCoveragePercent": 38,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 192,
            "visibleAtomicGoals": 53,
            "visibleClusterGoals": 139,
            "viewAtomicGoals": 53,
            "sourceBackedAtomicGoals": 53,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 141,
            "sourceMappedToViewAtomicGoals": 141,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 141,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 141,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 141,
            "sourceFullyCoveredOriginalGoals": 141,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 82,
            "atomicCoveragePercent": 12.8,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 218,
            "visibleAtomicGoals": 80,
            "visibleClusterGoals": 138,
            "viewAtomicGoals": 80,
            "sourceBackedAtomicGoals": 80,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 240,
            "sourceMappedToViewAtomicGoals": 240,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 240,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 240,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 240,
            "sourceFullyCoveredOriginalGoals": 240,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 105,
            "atomicCoveragePercent": 19.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 213,
            "visibleAtomicGoals": 73,
            "visibleClusterGoals": 140,
            "viewAtomicGoals": 73,
            "sourceBackedAtomicGoals": 73,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 251,
            "sourceMappedToViewAtomicGoals": 251,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 251,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 251,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 251,
            "sourceFullyCoveredOriginalGoals": 251,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 100,
            "atomicCoveragePercent": 17.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 212,
            "visibleAtomicGoals": 72,
            "visibleClusterGoals": 140,
            "viewAtomicGoals": 72,
            "sourceBackedAtomicGoals": 72,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 248,
            "sourceMappedToViewAtomicGoals": 248,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 248,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 248,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 248,
            "sourceFullyCoveredOriginalGoals": 248,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 99,
            "atomicCoveragePercent": 17.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 210,
            "visibleAtomicGoals": 70,
            "visibleClusterGoals": 140,
            "viewAtomicGoals": 70,
            "sourceBackedAtomicGoals": 70,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 176,
            "sourceMappedToViewAtomicGoals": 176,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 176,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 176,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 176,
            "sourceFullyCoveredOriginalGoals": 176,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 97,
            "atomicCoveragePercent": 16.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 214,
            "visibleAtomicGoals": 74,
            "visibleClusterGoals": 140,
            "viewAtomicGoals": 74,
            "sourceBackedAtomicGoals": 74,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 244,
            "sourceMappedToViewAtomicGoals": 244,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 244,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 244,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 244,
            "sourceFullyCoveredOriginalGoals": 244,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 101,
            "atomicCoveragePercent": 17.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 211,
            "visibleAtomicGoals": 69,
            "visibleClusterGoals": 142,
            "viewAtomicGoals": 69,
            "sourceBackedAtomicGoals": 69,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 298,
            "sourceMappedToViewAtomicGoals": 298,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 298,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 298,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 298,
            "sourceFullyCoveredOriginalGoals": 298,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 96,
            "atomicCoveragePercent": 16.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 201,
            "visibleAtomicGoals": 62,
            "visibleClusterGoals": 139,
            "viewAtomicGoals": 62,
            "sourceBackedAtomicGoals": 62,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 317,
            "sourceMappedToViewAtomicGoals": 317,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 317,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 317,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 317,
            "sourceFullyCoveredOriginalGoals": 317,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 89,
            "atomicCoveragePercent": 15,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 33,
        "completeSources": 33,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "84d274e9-c609-570e-579e-d01e3e80e710",
            "title": "Politik und Wirtschaft Sekundarstufe I (Brandenburg, RLP 2015 FULL Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/source-extraction/DE_BB_POLITISCHE_BILDUNG_WAT_SEKI_RLP2015_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-POLITISCHE-BILDUNG-SEKI-2015",
                "title": "Rahmenlehrplan Jahrgangsstufen 1-10 Politische Bildung Berlin-Brandenburg 2015 (Brandenburg)",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Politische_Bildung_2015_11_16.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Politische_Bildung_2015_11_16.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BB-WAT-SEKI-2015",
                "title": "Rahmenlehrplan Jahrgangsstufen 1-10 Wirtschaft-Arbeit-Technik Berlin-Brandenburg 2015 (Brandenburg)",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_WAT_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_WAT_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 113,
            "passages": 17,
            "mappedSourceGoals": 113,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 113,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.991150442477876,
              "p90Words": 10,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche BB-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_Politische_Bildung_2015_11_16.pdf, curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_WAT_2015_11_10.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "17/17 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus BB-SekI-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "113 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "113 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 49%. Kritisch gepruefte Abweichung: Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "113 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "67b024dc-38e5-5bc9-c702-81b2c8c8407a",
            "title": "Politik und Wirtschaft Sekundarstufe II (Brandenburg, GOST FULL Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/source-extraction/DE_BB_POLITISCHE_BILDUNG_WIRTSCHAFT_GOST_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-POLITISCHE-BILDUNG-GOST-2025",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Politische Bildung Berlin-Brandenburg 2025 (Brandenburg)",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2025_Politische_Bildung.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2025/Teil_C_RLP_GOST_2025_PB.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BB-WIRTSCHAFT-SEKII-2022",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Wirtschaftswissenschaft Berlin-Brandenburg 2022 (Brandenburg)",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 156,
            "passages": 32,
            "mappedSourceGoals": 156,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 154,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek II kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.487179487179487,
              "p90Words": 11,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche BB-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2025_Politische_Bildung.pdf, curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "32/32 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus BB-SekII-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "156 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "156 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median 4%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "156 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "13f4f55a-e839-5d37-bc7d-daa356956985",
            "title": "Politik und Wirtschaft Sekundarstufe I (Berlin, RLP 2015 FULL Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/source-extraction/DE_BE_POLITISCHE_BILDUNG_WAT_SEKI_RLP2015_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-POLITISCHE-BILDUNG-SEKI-2015",
                "title": "Rahmenlehrplan Jahrgangsstufen 1-10 Politische Bildung Berlin-Brandenburg 2015 (Berlin)",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Politische_Bildung_2015_11_16.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_Politische_Bildung_2015_11_16.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BE-WAT-SEKI-2015",
                "title": "Rahmenlehrplan Jahrgangsstufen 1-10 Wirtschaft-Arbeit-Technik Berlin-Brandenburg 2015 (Berlin)",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_WAT_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_WAT_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 113,
            "passages": 17,
            "mappedSourceGoals": 113,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 113,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.991150442477876,
              "p90Words": 10,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche BE-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_Politische_Bildung_2015_11_16.pdf, curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_WAT_2015_11_10.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "17/17 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus BE-SekI-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "113 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "113 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 49%. Kritisch gepruefte Abweichung: Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "113 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2dceae31-51d0-5f3c-c169-9330d4a7a4e9",
            "title": "Politik und Wirtschaft Sekundarstufe II (Berlin, GOST FULL Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/source-extraction/DE_BE_POLITISCHE_BILDUNG_WIRTSCHAFT_GOST_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-POLITISCHE-BILDUNG-GOST-2025",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Politische Bildung Berlin-Brandenburg 2025 (Berlin)",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2025_Politische_Bildung.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2025/Teil_C_RLP_GOST_2025_PB.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "BE-WIRTSCHAFT-SEKII-2022",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Wirtschaftswissenschaft Berlin-Brandenburg 2022 (Berlin)",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 156,
            "passages": 32,
            "mappedSourceGoals": 156,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 154,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek II kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.487179487179487,
              "p90Words": 11,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche BE-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2025_Politische_Bildung.pdf, curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "32/32 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus BE-SekII-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "156 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "156 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median 4%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "156 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "1bdda9ac-0df5-57f2-bbe7-528647308a90",
            "title": "Gemeinschaftskunde Kursstufe (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Gemeinschaftskunde",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_GEMEINSCHAFTSKUNDE_SEKII_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-GK",
                "title": "Bildungsplan 2016 Gymnasium Gemeinschaftskunde Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_GK.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_GK.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 145,
            "passages": 22,
            "mappedSourceGoals": 145,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 13,
            "partialMappings": 132,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "BW Sek II kombiniert Gemeinschaftskunde GK/LK mit separater Wirtschaft-Kursstufe; die GK-Kompetenzen sind aus 2-stuendigem und 4-stuendigem Kurs extrahiert und werden zusammen mit 58 Wirtschaft-Zielen zur BW-PoWi-Sicht gebuendelt."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.944827586206896,
              "p90Words": 22,
              "maxWords": 35,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtlicher BP2016-Gemeinschaftskunde-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_GK.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Nummerierte Kompetenzpassagen extrahiert",
                    "passed": true,
                    "details": "22/22 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichem PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenzformulierungen erzeugt",
                    "passed": true,
                    "details": "145 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "145 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "51768ff7-8ff8-5cc2-d2d0-a97a72f01a91",
            "title": "Gemeinschaftskunde Sekundarstufe I (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Gemeinschaftskunde",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_GEMEINSCHAFTSKUNDE_SEKI_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-GK",
                "title": "Bildungsplan 2016 Gymnasium Gemeinschaftskunde Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_GK.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_GK.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 81,
            "passages": 13,
            "mappedSourceGoals": 81,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 81,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "BW Sek I kombiniert Gemeinschaftskunde mit separater WBS-Spur; die GK-Kompetenzen sind aus 13 offiziellen Unterabschnitten extrahiert und werden zusammen mit 43 WBS-Zielen zur BW-PoWi-Sicht gebuendelt."
            },
            "sourceGoalGranularity": {
              "averageWords": 14.839506172839506,
              "p90Words": 23,
              "maxWords": 32,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtlicher BP2016-Gemeinschaftskunde-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_GK.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Nummerierte Kompetenzpassagen extrahiert",
                    "passed": true,
                    "details": "13/13 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichem PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenzformulierungen erzeugt",
                    "passed": true,
                    "details": "81 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "81 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4137eeb1-2c30-57a4-8390-d27971381e86",
            "title": "Wirtschaft / Berufs- und Studienorientierung Sekundarstufe I (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Wirtschaft / Berufs- und Studienorientierung",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_WBS_SEKI_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-WBS",
                "title": "Bildungsplan 2016 Gymnasium Wirtschaft / Berufs- und Studienorientierung Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WBS.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_WBS.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 43,
            "passages": 5,
            "mappedSourceGoals": 43,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 9,
            "partialMappings": 34,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 15.767441860465116,
              "p90Words": 22,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WBS.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten BW-Wirtschaft-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "5/5 Bereiche; fehlend: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Kompetenzbereich hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Bereiche: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WBS.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Wirtschaft-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "43 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "43 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "43/43 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 43/43; Mappings: 43/43; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4a339f25-cf0f-54c7-8b5d-79ea00e4b72c",
            "title": "Wirtschaft Kursstufe (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_WIRTSCHAFT_SEKII_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-WI",
                "title": "Bildungsplan 2016 Gymnasium Wirtschaft Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WI.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_WI.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 58,
            "passages": 7,
            "mappedSourceGoals": 58,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 16,
            "partialMappings": 42,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 13.5,
              "p90Words": 21,
              "maxWords": 29,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WI.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten BW-Wirtschaft-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "7/7 Bereiche; fehlend: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Kompetenzbereich hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Bereiche: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WI.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Wirtschaft-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "58 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "58 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "58/58 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 58/58; Mappings: 58/58; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "486a8278-39b2-5450-96f8-1076a47b655b",
            "title": "Politik und Gesellschaft (Bayern, LehrplanPLUS Source-Extraction)",
            "jurisdiction": "DE-BY",
            "subject": "Politik und Gesellschaft",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_POLITIK_UND_GESELLSCHAFT_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Politik und Gesellschaft",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Politik_und_Gesellschaft.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/politik-und-gesellschaft",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 345,
            "passages": 46,
            "mappedSourceGoals": 345,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 277,
            "partialMappings": 68,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Bayern Politik und Gesellschaft ist eine strukturierte LehrplanPLUS-Gesamtextraktion fuer Sek I und Sek II mit separaten PuG-Varianten, darunter -2-Themenreihen. Die 345 Source-Ziele entstehen aus der vollstaendigen Uebernahme der fachlichen Lernbereichs-Blaetter und aus source-literal erhaltenen Kompetenzsaetzen; Stichproben der langen Ziele und Doppeltexte zeigen Track-/Varianten-Dopplungen in der amtlichen Quelle, keinen fehlenden oder zu groben Extraction-Schnitt."
            },
            "sourceGoalGranularity": {
              "averageWords": 26.695652173913043,
              "p90Words": 38,
              "maxWords": 60,
              "longGoals": 4,
              "longGoalThreshold": 45,
              "examples": [
                {
                  "id": "1c3cb607-53fb-5ad6-b488-946652e1ba9a",
                  "topicCode": "PuG12.1",
                  "words": 60,
                  "text": "setzen sich mit einem aktuellen Auslandseinsatz der Bundeswehr als Beitrag zu Frieden und Sicherheit in der Welt auseinander (z. B. Befragung einer Zeitzeugi..."
                },
                {
                  "id": "47e99ecb-4c03-5d0c-a767-3980ed73be42",
                  "topicCode": "PuG12.1-2",
                  "words": 56,
                  "text": "setzen sich mit einem aktuellen Auslandseinsatz der Bundeswehr als Beitrag zu Frieden und Sicherheit in der Welt auseinander (z. B. Befragung einer Zeitzeugi..."
                },
                {
                  "id": "cb0f0baf-f686-5923-8549-98144ba36894",
                  "topicCode": "PuG11.3-2",
                  "words": 49,
                  "text": "erschließen (z. B. mithilfe eines Erklärvideos) Kennzeichen der Rechtsstaatlichkeit und erfassen aktuelle Herausforderungen für den Rechtsstaat (z. B. Spannu..."
                },
                {
                  "id": "1e3dafca-7be0-50b5-a155-f6e31f5f7ba3",
                  "topicCode": "PuG12.3-2",
                  "words": 46,
                  "text": "setzen sich mit einer zeitgenössischen Utopie bzw. Dystopie (z. B. in Form eines literarischen Werks, eines Films bzw. einer Fernsehserie, einer Graphic Nove..."
                }
              ]
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte LehrplanPLUS-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "46 Passagen aus curricula/DE/Gymnasium/input/BY/gymnasium/Politik_und_Gesellschaft.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Lehrplanpassagen sind als Passage-Index extrahiert",
                    "passed": true,
                    "details": "46 Passagen aus curricula/DE/Gymnasium/input/BY/gymnasium/Politik_und_Gesellschaft.json"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                    "passed": true,
                    "details": "345 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "345 Source-Ziele; Vergleich HE/BW SEKI (81/71) + SEKII (145/155); Median 226; zulässiger 30%-Median-Korridor 159-293; Abweichung vom Median 53%. Kritisch gepruefte Abweichung: Bayern Politik und Gesellschaft ist eine strukturierte LehrplanPLUS-Gesamtextraktion fuer Sek I und Sek II mit separaten PuG-Varianten, darunter -2-Themenreihen. Die 345 Source-Ziele entstehen aus der vollstaendigen Uebernahme der fachlichen Lernbereichs-Blaetter und aus source-literal erhaltenen Kompetenzsaetzen; Stichproben der langen Ziele und Doppeltexte zeigen Track-/Varianten-Dopplungen in der amtlichen Quelle, keinen fehlenden oder zu groben Extraction-Schnitt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "345/345 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 345/345; Mappings: 345/345; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "cdc66410-bd45-5717-fc04-3f15c39d2ada",
            "title": "Politik und WAT Sekundarstufe I (Bremen, Bildungsplan FULL Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/source-extraction/DE_HB_POLITIK_WAT_SEKI_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-WUK-GYMNASIUM-2006",
                "title": "Welt-Umweltkunde, Geschichte, Geografie, Politik - Bildungsplan Gymnasium 5-10 Bremen 2006",
                "path": "curricula/DE/Gymnasium/input/HB/WUK_Geschichte_Geografie_Politik_Gymnasium_5_10_2006.pdf",
                "url": "https://edumedia-depot.gei.de/server/api/core/bitstreams/6e665592-f2c1-420c-9f77-d52f4ab2ec5c/content",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "HB-WAT-GYMNASIUM-2006",
                "title": "Bildungsplan Wirtschaft-Arbeit-Technik Gymnasium 5-10 Bremen 2006",
                "path": "curricula/DE/Gymnasium/input/HB/Gy_WAT_2006.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_WAT_2006.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 71,
            "passages": 11,
            "mappedSourceGoals": 71,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 71,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Bremen Sek I ist knapp formuliert: Politik ist im Gymnasium 9/10 angelegt, dazu kommt die bereits vorhandene WAT-Spur. Die geringere Zielzahl wurde gegen die amtlichen Standards und Themenbereiche plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.098591549295774,
              "p90Words": 12,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche HB-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/WUK_Geschichte_Geografie_Politik_Gymnasium_5_10_2006.pdf, curricula/DE/Gymnasium/input/HB/Gy_WAT_2006.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "11/11 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus HB-SekI-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "71 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "71 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median -7%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "71 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c6b00a33-3906-5f20-0b63-8442a3174273",
            "title": "Politik und Wirtschaftslehre Sekundarstufe II (Bremen, Bildungsplan FULL Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HB/upper-secondary/source-extraction/DE_HB_POLITIK_WIRTSCHAFTSLEHRE_SEKII_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-POLITIK-GYQ-2008",
                "title": "Politik Bildungsplan Gymnasiale Oberstufe Qualifikationsphase Bremen 2008",
                "path": "curricula/DE/Gymnasium/input/HB/Politik_GOS_Qualifikationsphase_2008.pdf",
                "url": "https://edumedia-depot.gei.de/bitstreams/3a5c9a3f-2ce2-48ff-aa33-e80db26c113d/download",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "HB-WIRTSCHAFTSLEHRE-GYO-2008",
                "title": "Bildungsplan Wirtschaftslehre Gymnasiale Oberstufe Bremen 2008",
                "path": "curricula/DE/Gymnasium/input/HB/GyO_Wirtschaftslehre_2008.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/GyO_Wirtschaftslehre_2008.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 70,
            "passages": 9,
            "mappedSourceGoals": 70,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 70,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Bremen Sek II kombiniert den knappen Politik-Bildungsplan der Qualifikationsphase 2008 mit der vorhandenen Wirtschaftslehre-Spur; die geringere Zielzahl ist durch die stark standardorientierte amtliche Quelle erklaert."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.785714285714286,
              "p90Words": 12,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche HB-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/Politik_GOS_Qualifikationsphase_2008.pdf, curricula/DE/Gymnasium/input/HB/GyO_Wirtschaftslehre_2008.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "9/9 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus HB-SekII-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "70 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "70 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -53%. Kritisch gepruefte Abweichung: Bremen Sek II kombiniert den knappen Politik-Bildungsplan der Qualifikationsphase 2008 mit der vorhandenen Wirtschaftslehre-Spur; die geringere Zielzahl ist durch die stark standardorientierte amtliche Quelle erklaert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "70 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "1d0e9f8f-0087-49e4-8ea2-976e5a89b165",
            "title": "Politik und Wirtschaft Oberstufe (Hessen, KC 2024 Source-Extraction)",
            "jurisdiction": "DE-HE",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_POLITIKWIRTSCHAFT_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Politik und Wirtschaft Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/kernkurriculum_gymnasiale_oberstufe-politik_und_wirtschaft.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-politik_und_wirtschaft.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "title": "Strukturierter KC-Snapshot Politik und Wirtschaft Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_POLITIKWIRTSCHAFT.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula-und-lehrplaene/kerncurricula/gymnasiale-oberstufe-ab-schuljahr-20242025-kerncurricula",
                "official": false,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 155,
            "passages": 20,
            "mappedSourceGoals": 155,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 155,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.825806451612904,
              "p90Words": 10,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliches KC-PDF und strukturierter KC-Snapshot liegen lokal vor",
                    "passed": true,
                    "details": "20 fachliche KC-Passagen aus curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_POLITIKWIRTSCHAFT.de.json.snapshot; phasenlokale Uebungsblaetter sind nicht Teil des fachlichen Source-Inventars."
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Lehrplanpassagen sind als Passage-Index extrahiert",
                    "passed": true,
                    "details": "20 fachliche KC-Passagen aus curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_POLITIKWIRTSCHAFT.de.json.snapshot; phasenlokale Uebungsblaetter sind nicht Teil des fachlichen Source-Inventars."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                    "passed": true,
                    "details": "155 fachliche Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "155/155 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 155/155; Mappings: 155/155; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "DE_HE_POLITIKWIRTSCHAFT_SEKI_G9_SOURCE",
            "title": "Politik und Wirtschaft Sekundarstufe I (Hessen, G9 Source-Extraction)",
            "jurisdiction": "DE-HE",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/source-extraction/DE_HE_POLITIKWIRTSCHAFT_SEKI_G9.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Lehrplan Politik & Wirtschaft Gymnasialer Bildungsgang Jahrgangsstufen 7 bis 13 Hessen",
                "path": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-politik-und-wirtschaft.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2021-06/g9-politik-und-wirtschaft.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 71,
            "passages": 11,
            "mappedSourceGoals": 71,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 29,
            "partialMappings": 42,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "71 Source-Ziele aus 11 verbindlichen HE-Sek-I-Themen; fachlicher Umfang liegt im plausiblen Korridor für eine ältere G9-Inhaltsfassung."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.464788732394366,
              "p90Words": 10,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Hessen-G9-Lehrplan Politik & Wirtschaft liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/lower-secondary/g9-politik-und-wirtschaft.pdf"
                  },
                  {
                    "id": "required-topic-passages-extracted",
                    "label": "Verbindliche Unterrichtsinhalte der Jahrgangsstufen 7 bis 10 extrahiert",
                    "passed": true,
                    "details": "11/11 verbindliche Themenpassagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus verbindlichen Lehrplaninhalten erstellt",
                    "passed": true,
                    "details": "71 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-trace-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "71 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "71/71 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 71/71; Mappings: 71/71; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "76430a71-3447-5d7c-f29d-415b8fee877d",
            "title": "PGW Sekundarstufe I (Hamburg, Bildungsplan 2022 FULL Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Politik/Gesellschaft/Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_PGW_SEKI_BILDUNGSPLAN_2022_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-PGW-SEKI-2022",
                "title": "Bildungsplan Gymnasium Sekundarstufe I Politik/Gesellschaft/Wirtschaft Hamburg",
                "path": "curricula/DE/Gymnasium/input/HH/pgw-gym-seki-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123480/ec95895152120f9d437cdb3c9f987879/pgw-gym-seki-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 90,
            "passages": 12,
            "mappedSourceGoals": 90,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 88,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "HH Sek I liegt mit kompakter PGW-Struktur inklusive Wirtschaft bei einer plausiblen Zielzahl; die Zahl liegt im Korridor der bereits kritisch geprüften PoWi-Bundesländer."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.877777777777778,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtlicher HH-PGW-Bildungsplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/pgw-gym-seki-2022-data.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "PGW-Passagen aus Anforderungen und Inhalten extrahiert",
                    "passed": true,
                    "details": "12/12 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlicher Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus HH-PGW-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "90 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "90 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 18%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "90 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "fd04b814-035f-568c-5274-df51527ff9c9",
            "title": "PGW Studienstufe (Hamburg, Bildungsplan 2022 FULL Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Politik/Gesellschaft/Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/source-extraction/DE_HH_PGW_SEKII_BILDUNGSPLAN_2022_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-PGW-GYO-2022",
                "title": "Bildungsplan Studienstufe Politik/Gesellschaft/Wirtschaft Hamburg",
                "path": "curricula/DE/Gymnasium/input/HH/p-g-w-gyo-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123082/9e8fca4bcac88da5c5d6aa02d15b43c8/p-g-w-gyo-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 150,
            "passages": 11,
            "mappedSourceGoals": 150,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 150,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "HH Sek II bündelt Demokratie/Partizipation, Gesellschaft/Gerechtigkeit und die vorhandenen wirtschaftlichen Module; die Zielzahl liegt im Korridor der bereits kritisch geprüften PoWi-Bundesländer."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.133333333333334,
              "p90Words": 9,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtlicher HH-PGW-Bildungsplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/p-g-w-gyo-2022-data.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "PGW-Passagen aus Anforderungen und Inhalten extrahiert",
                    "passed": true,
                    "details": "11/11 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlicher Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus HH-PGW-Lehrplanpassagen erzeugt",
                    "passed": true,
                    "details": "150 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "150 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median 0%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "150 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7580970f-a562-5487-2fd1-e1498c019a18",
            "title": "Sozialkunde Sekundarstufe I (Mecklenburg-Vorpommern, Rahmenplan FULL Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_SOZIALKUNDE_SEKI_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-SOZIALKUNDE-SEKI-RAHMENPLAN-2023",
                "title": "Rahmenplan Politische Bildung/Sozialkunde Sekundarstufe I Mecklenburg-Vorpommern",
                "path": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Sozialkunde_Sek_I_Regionale_Schule_Gymnasium.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/rp_sozialkunde_sek_I_regs_gym.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 123,
            "passages": 19,
            "mappedSourceGoals": 123,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 123,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.951219512195122,
              "p90Words": 13,
              "maxWords": 19,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche MV-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Sozialkunde_Sek_I_Regionale_Schule_Gymnasium.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "19/19 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus MV-SekI-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "123 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "123 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 62%. Kritisch gepruefte Abweichung: Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "123 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4a0f16d5-1913-56d5-affa-52e186096cba",
            "title": "Sozialkunde und Wirtschaft Sekundarstufe II (Mecklenburg-Vorpommern, Rahmenplan FULL Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/source-extraction/DE_MV_SOZIALKUNDE_WIRTSCHAFT_SEKII_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-SOZIALKUNDE-GO-RAHMENPLAN-2019",
                "title": "Rahmenplan Sozialkunde Qualifikationsphase Mecklenburg-Vorpommern",
                "path": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Sozialkunde_GOS_MV.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/RP_SOZ_SEK2.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "MV-WIRTSCHAFT-GO-RAHMENPLAN-2019",
                "title": "Rahmenplan Wirtschaft Qualifikationsphase Mecklenburg-Vorpommern",
                "path": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Wirtschaft_GOS_MV.pdf",
                "url": "https://service.mvnet.de/_php/download.php?datei_id=1612623",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 128,
            "passages": 16,
            "mappedSourceGoals": 128,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 128,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek II kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.875,
              "p90Words": 13,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche MV-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Sozialkunde_GOS_MV.pdf, curricula/DE/Gymnasium/input/MV/Rahmenplan_Wirtschaft_GOS_MV.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "16/16 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus MV-SekII-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "128 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "128 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -15%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "128 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ecb21b2f-ea0d-57cc-fca7-19124430ca88",
            "title": "Politik-Wirtschaft Oberstufe (Niedersachsen, KC 2018 FULL Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Politik-Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/source-extraction/DE_NI_POLITIK_WIRTSCHAFT_SEKII_KC2018_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-POLITIK-WIRTSCHAFT-SEKII-KC2018",
                "title": "Kerncurriculum Politik-Wirtschaft gymnasiale Oberstufe Niedersachsen",
                "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/pw_go_druck_2018.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=205",
                "landingUrl": "https://cuvo.nibis.de/cuvo.php?k0_0=Fach&k0_1=Dokumentenart&p=search&v0_0=Politik-Wirtschaft&v0_1=Kerncurriculum",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 130,
            "passages": 18,
            "mappedSourceGoals": 130,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 130,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek II erweitert die bisherige Wirtschaft-only-Spur um Partizipation, Medien, Friedenssicherung, internationale Politik und eA-Vertiefungen. Die Zielzahl liegt im plausiblen Korridor der bereits geprueften PoWi-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.407692307692308,
              "p90Words": 11,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtliches NI-Politik-Wirtschaft-Kerncurriculum liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/upper-secondary/pw_go_druck_2018.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Gegenstandsbereich-Passagen extrahiert",
                    "passed": true,
                    "details": "18/18 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlicher Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus NI-Politik-Wirtschaft-Passagen erzeugt",
                    "passed": true,
                    "details": "130 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "130 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -13%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "130 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4a5b754a-b8ae-53a4-427e-e78439ae80e4",
            "title": "Politik-Wirtschaft Sekundarstufe I (Niedersachsen, KC 2015 FULL Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Politik-Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/source-extraction/DE_NI_POLITIK_WIRTSCHAFT_SEKI_KC2015_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-POLITIK-WIRTSCHAFT-SEKI-KC2015",
                "title": "Kerncurriculum Politik-Wirtschaft Gymnasium Schuljahrgaenge 8-10 Niedersachsen",
                "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/pw_gym_si_kc_druck.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=65",
                "landingUrl": "https://cuvo.nibis.de/cuvo.php?k0_0=Fach&k0_1=Dokumentenart&p=search&v0_0=Politik-Wirtschaft&v0_1=Kerncurriculum",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 90,
            "passages": 11,
            "mappedSourceGoals": 90,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 90,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek I erweitert die bisherige Wirtschaft-only-Spur um Basiskonzepte, Prozesskompetenzen, Kommunalpolitik, Bundespolitik, Verfassungsprinzipien und EU. Die Zielzahl liegt im plausiblen Korridor der bereits geprueften PoWi-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.6,
              "p90Words": 10,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtliches NI-Politik-Wirtschaft-Kerncurriculum liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NI/lower-secondary/pw_gym_si_kc_druck.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Gegenstandsbereich-Passagen extrahiert",
                    "passed": true,
                    "details": "11/11 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlicher Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus NI-Politik-Wirtschaft-Passagen erzeugt",
                    "passed": true,
                    "details": "90 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "90 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 18%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "90 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "0b8701cc-b1d6-5798-4caa-9a42c5801b24",
            "title": "Sozialwissenschaften/Wirtschaft Oberstufe (Nordrhein-Westfalen, KLP GOSt Full Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/source-extraction/DE_NW_SOZIALWISSENSCHAFTEN_WIRTSCHAFT_SEKII_KLP_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-NW-SOWI-WIRTSCHAFT-SEKII-KLP",
                "title": "Kernlehrplan Sozialwissenschaften und Sozialwissenschaften/Wirtschaft Gymnasiale Oberstufe Nordrhein-Westfalen",
                "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_sowi.pdf",
                "url": "https://www.schulentwicklung.nrw.de/lehrplaene/upload/klp_SII/sw/KLP_GOSt_SoWi.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 211,
            "passages": 11,
            "mappedSourceGoals": 211,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 211,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NRW Sek II enthaelt EF sowie GK- und LK-Qualifikationsphase fuer Sozialwissenschaften/Wirtschaft mit 11 Inhaltsfeldern; 211 Source-Ziele entstehen aus getrennten Sach- und Urteilskompetenzen und wurden nach Parser-Korrektur gegen die KLP-Abschnitte 2.4/2.5 geprueft."
            },
            "sourceGoalGranularity": {
              "averageWords": 13.42654028436019,
              "p90Words": 21,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtlicher NRW-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_sowi.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Konkretisierte Kompetenzerwartungen extrahiert",
                    "passed": true,
                    "details": "11/11 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichem PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "211 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "211 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median 41%. Kritisch gepruefte Abweichung: NRW Sek II enthaelt EF sowie GK- und LK-Qualifikationsphase fuer Sozialwissenschaften/Wirtschaft mit 11 Inhaltsfeldern; 211 Source-Ziele entstehen aus getrennten Sach- und Urteilskompetenzen und wurden nach Parser-Korrektur gegen die KLP-Abschnitte 2.4/2.5 geprueft."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "211 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "211/211 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 211/211; Mappings: 211/211; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "846fcb85-0aaa-5687-d6ff-80e9f6a63ac4",
            "title": "Wirtschaft-Politik Sekundarstufe I (Nordrhein-Westfalen, KLP G9 2019 Full Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/source-extraction/DE_NW_WIRTSCHAFT_POLITIK_SEKI_KLP2019_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "DE-NW-WIPO-SEKI-KLP2019",
                "title": "Kernlehrplan Wirtschaft-Politik Gymnasium Sekundarstufe I Nordrhein-Westfalen 2019",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_wipo_klp_3429_2019_06_23.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_wipo_klp_3429_2019_06_23.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 100,
            "passages": 14,
            "mappedSourceGoals": 100,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 100,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NRW Sek I umfasst die Erprobungsstufe und Mittelstufe mit 14 Inhaltsfeldern sowie Sach- und Urteilskompetenzen aus dem KLP Wirtschaft-Politik G9 2019; 100 Source-Ziele sind nach erneuter PDF-Bereichsprüfung plausibel und liegen unter SH Sek I (119)."
            },
            "sourceGoalGranularity": {
              "averageWords": 10.11,
              "p90Words": 15,
              "maxWords": 19,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtlicher NRW-KLP-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_wipo_klp_3429_2019_06_23.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Konkretisierte Kompetenzerwartungen extrahiert",
                    "passed": true,
                    "details": "14/14 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichem PDF statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus amtlichen Kompetenzerwartungen erzeugt",
                    "passed": true,
                    "details": "100 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "100 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 32%. Kritisch gepruefte Abweichung: NRW Sek I umfasst die Erprobungsstufe und Mittelstufe mit 14 Inhaltsfeldern sowie Sach- und Urteilskompetenzen aus dem KLP Wirtschaft-Politik G9 2019; 100 Source-Ziele sind nach erneuter PDF-Bereichsprüfung plausibel und liegen unter SH Sek I (119)."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "100 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gültige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "100/100 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 100/100; Mappings: 100/100; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ba9224f9-7414-5fe0-5e11-ccc0a0b592fc",
            "title": "Sozialkunde Sekundarstufe I (Rheinland-Pfalz, Lehrplan 2021 FULL Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Sozialkunde",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/source-extraction/DE_RP_SOZIALKUNDE_SEKI_LEHRPLAN_2021_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-SOZIALKUNDE-SEK-I-2021",
                "title": "Lehrplan gesellschaftswissenschaftliche Faecher Sekundarstufe I Rheinland-Pfalz, Fachlehrplan Sozialkunde",
                "path": "curricula/DE/Gymnasium/input/RP/Ek_G_Sk_Sek_I_LP_2021.pdf",
                "url": "https://bildung.rlp.de/fileadmin/user_upload/demokratie.bildung.rlp.de/Downloads/Ek_G_Sk_Sek_I__LP_2021_.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 90,
            "passages": 10,
            "mappedSourceGoals": 90,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 90,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "RP Sek I erweitert die bisherige Wirtschaft-only-Spur um Demokratie im Nahraum, Familie/Gesellschaft, Medien, Recht, politische Ordnung, EU und Frieden. Die Zielzahl liegt im Korridor der bereits geprueften PoWi-Laender."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.61111111111111,
              "p90Words": 11,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtlicher RP-Sozialkunde-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Ek_G_Sk_Sek_I_LP_2021.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Lernfeldpassagen extrahiert",
                    "passed": true,
                    "details": "10/10 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlicher Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus RP-Sozialkunde-Passagen erzeugt",
                    "passed": true,
                    "details": "90 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "90 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "90403d67-a414-5db2-ff3d-8e9f5510ff0c",
            "title": "Sozialkunde Sekundarstufe II (Rheinland-Pfalz, Lehrplan 2022 FULL Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Sozialkunde",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/source-extraction/DE_RP_SOZIALKUNDE_SEKII_LEHRPLAN_2022_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-SOZIALKUNDE-SEK-II-2022",
                "title": "Lehrplan gesellschaftswissenschaftliche Faecher Sekundarstufe II Rheinland-Pfalz, Fachlehrplan Sozialkunde",
                "path": "curricula/DE/Gymnasium/input/RP/Gesellschaftswissenschaftliche_Faecher_SekII_2022.pdf",
                "url": "https://bildung.rlp.de/fileadmin/user_upload/studienseminar.rlp.de/gy-ko/Koblenz/Ausbildung/Geschichte/Links/Lehrplan_fuer_die_gesellschaftswissenschaftlichen_Faecher_Erdkunde_Geschichte_Sozialkunde_in_der_Sek._II__1_.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 158,
            "passages": 16,
            "mappedSourceGoals": 158,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 158,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "RP Sek II erweitert die bisherige Wirtschaft-only-Spur um Sozialkunde-Leistungsfach und Grundfach: Politikbegriff, Gesellschaft, Werte/Rechte, Demokratie, Europa, Sozialstaat, Frieden, internationale Politik und globale Gesellschaft. Die Zielzahl ist wegen LF/GF-Struktur plausibel."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.386075949367088,
              "p90Words": 11,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-local",
                    "label": "Amtlicher RP-Sozialkunde-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Gesellschaftswissenschaftliche_Faecher_SekII_2022.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Lernfeldpassagen extrahiert",
                    "passed": true,
                    "details": "16/16 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlicher Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus RP-Sozialkunde-Passagen erzeugt",
                    "passed": true,
                    "details": "158 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "158 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "b947f1ed-3a47-50ad-8ae9-3f96b9e1158f",
            "title": "Wirtschaft/Politik Oberstufe (Schleswig-Holstein, Fachanforderungen 2016 Full Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/upper-secondary/source-extraction/DE_SH_WIRTSCHAFT_POLITIK_SEKII_FACHANFORDERUNGEN_2016_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-WIPO-SEK-I-II-2016",
                "title": "Fachanforderungen Wirtschaft/Politik Sekundarstufe I / Sekundarstufe II Schleswig-Holstein",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Wirtschaft_Politik_Sekundarstufe_2016_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_WiPo_SEK_barrierearm.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 168,
            "passages": 24,
            "mappedSourceGoals": 168,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 168,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SH Sek II umfasst E1 Demokratie, E2 Gesellschaft, E3 Soziale Marktwirtschaft, Q1 Europa/Wirtschaftspolitik und Q2 Frieden, Sozialstaat, Globalisierung, Medien sowie Ökologie; Umfang ist für eine integrierte WiPo-Oberstufe plausibel."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.946428571428571,
              "p90Words": 9,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-Wirtschaft/Politik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Wirtschaft_Politik_Sekundarstufe_2016_barrierearm.pdf"
                  },
                  {
                    "id": "required-topic-passages-extracted",
                    "label": "Verbindliche SH-Wirtschaft/Politik-Themenpassagen extrahiert",
                    "passed": true,
                    "details": "24/24 Themenpassagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus verbindlichen SH-Lehrplaninhalten erstellt",
                    "passed": true,
                    "details": "168 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-trace-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "168 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median 12%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "168 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "168/168 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 168/168; Mappings: 168/168; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "5c1ebc7b-55b7-5db6-8cf4-d4b3b76baa36",
            "title": "Wirtschaft/Politik Sekundarstufe I (Schleswig-Holstein, Fachanforderungen 2016 Full Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SH/lower-secondary/source-extraction/DE_SH_WIRTSCHAFT_POLITIK_SEKI_FACHANFORDERUNGEN_2016_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-WIPO-SEK-I-II-2016",
                "title": "Fachanforderungen Wirtschaft/Politik Sekundarstufe I / Sekundarstufe II Schleswig-Holstein",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Wirtschaft_Politik_Sekundarstufe_2016_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_WiPo_SEK_barrierearm.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 119,
            "passages": 16,
            "mappedSourceGoals": 119,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 118,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SH Sek I umfasst Politik betrifft uns, Jugendliche in einer sich wandelnden Gesellschaft, Wirtschaft betrifft uns sowie Arbeitswelt/Berufsorientierung; Umfang liegt plausibel zwischen HE-Sek-I und BY-LehrplanPLUS."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.184873949579832,
              "p90Words": 8,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-Wirtschaft/Politik-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Wirtschaft_Politik_Sekundarstufe_2016_barrierearm.pdf"
                  },
                  {
                    "id": "required-topic-passages-extracted",
                    "label": "Verbindliche SH-Wirtschaft/Politik-Themenpassagen extrahiert",
                    "passed": true,
                    "details": "16/16 Themenpassagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus verbindlichen SH-Lehrplaninhalten erstellt",
                    "passed": true,
                    "details": "119 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-trace-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "119 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 57%. Kritisch gepruefte Abweichung: SH Sek I umfasst Politik betrifft uns, Jugendliche in einer sich wandelnden Gesellschaft, Wirtschaft betrifft uns sowie Arbeitswelt/Berufsorientierung; Umfang liegt plausibel zwischen HE-Sek-I und BY-LehrplanPLUS."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "119 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "119/119 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 119/119; Mappings: 119/119; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "ca6137c0-a3dc-504d-c44a-ea25efd41298",
            "title": "Sozialkunde und Wirtschaft Sekundarstufe I (Saarland, Lehrplan FULL Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_SOZIALKUNDE_WIRTSCHAFT_SEKI_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-SOZIALKUNDE-9-GYMNASIUM-2012",
                "title": "Lehrplan Sozialkunde 9 Gymnasium Saarland 2012",
                "path": "curricula/DE/Gymnasium/input/SL/Sozialkunde_9_Gym_2012.pdf",
                "url": "https://edumedia-depot.gei.de/bitstreams/89204b29-51a6-4aa1-a7f8-9bffd2da6565/download",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 52,
            "passages": 7,
            "mappedSourceGoals": 52,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 52,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Saarland Sek I ist im amtlichen Gymnasial-Lehrplan Sozialkunde fuer Klassenstufe 9 gebuendelt; die geringere Zielzahl ist durch diese kompakte Jahrgangsquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.115384615384615,
              "p90Words": 12,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche SL-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/Sozialkunde_9_Gym_2012.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "7/7 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus SL-SekI-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "52 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "52 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median -32%. Kritisch gepruefte Abweichung: Saarland Sek I ist im amtlichen Gymnasial-Lehrplan Sozialkunde fuer Klassenstufe 9 gebuendelt; die geringere Zielzahl ist durch diese kompakte Jahrgangsquelle plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "52 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "eb069eaf-797d-51d0-489e-75631a959195",
            "title": "Sozialkunde, Politik und Wirtschaftslehre Sekundarstufe II (Saarland, GOS FULL Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_SOZIALKUNDE_POLITIK_WIRTSCHAFTSLEHRE_GOS_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-SOZIALKUNDE-EP-GOS-2021",
                "title": "Lehrplan Sozialkunde Gymnasiale Oberstufe Einführungsphase Saarland 2021",
                "path": "curricula/DE/Gymnasium/input/SL/LP_SK_EP_gos_2021.pdf",
                "url": "https://edumedia-depot.gei.de/server/api/core/bitstreams/227fc7cb-bfeb-42e7-82bf-1a15c1849d2a/content",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-POLITIK-GK-2019",
                "title": "Lehrplan Politik Grundkurs Hauptphase Saarland 2019",
                "path": "curricula/DE/Gymnasium/input/SL/LP_Po_HP_GK_2019.pdf",
                "url": "https://edumedia-depot.gei.de/server/api/core/bitstreams/4f0c28ba-2ccb-4811-b167-e50bc66f4d2d/content",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-POLITIK-LK-2019",
                "title": "Lehrplan Politik Leistungskurs Hauptphase Saarland 2019",
                "path": "curricula/DE/Gymnasium/input/SL/LP_Po_HP_LK_2019.pdf",
                "url": "https://edumedia-depot.gei.de/server/api/core/bitstreams/c76797ab-637b-4339-8bef-3080a36054cf/content",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "SL-WIRTSCHAFTSLEHRE-GOS-2023",
                "title": "Lehrplan Wirtschaftslehre Gymnasiale Oberstufe Saarland 2023",
                "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_WIRTSCHAFTSLEHRE_GOS_2023.source-extraction.json",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 124,
            "passages": 13,
            "mappedSourceGoals": 124,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 124,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Saarland Sek II wurde gegen Einfuehrungsphase Sozialkunde 2021, Politik GK/LK Hauptphase 2019 und Wirtschaftslehre GOS geprueft; GK/LK-Dopplungen werden als Source-Kontext, nicht als neue kanonische Ziele, gefuehrt."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.588709677419354,
              "p90Words": 13,
              "maxWords": 17,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche SL-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SL/LP_SK_EP_gos_2021.pdf, curricula/DE/Gymnasium/input/SL/LP_Po_HP_GK_2019.pdf, curricula/DE/Gymnasium/input/SL/LP_Po_HP_LK_2019.pdf, curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_WIRTSCHAFTSLEHRE_GOS_2023.source-extraction.json"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "13/13 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus SL-SekII-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "124 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "124 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -17%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "124 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4a91f9d1-2f31-53a5-14ed-5f1d365f467a",
            "title": "GRW Sekundarstufe I (Sachsen, Lehrplan FULL Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_GRW_SEKI_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-GRW-GYMNASIUM-LEHRPLAN-2024",
                "title": "Lehrplan Gymnasium Gemeinschaftskunde/Rechtserziehung/Wirtschaft Sachsen",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-grw-sachsen-2019.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/76/1IrLTgST5OTPa55GLt6b",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 113,
            "passages": 14,
            "mappedSourceGoals": 113,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 113,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.353982300884956,
              "p90Words": 11,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche SN-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-grw-sachsen-2019.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "14/14 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus SN-SekI-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "113 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "113 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 49%. Kritisch gepruefte Abweichung: Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "113 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a2457e1b-667f-53b9-d98d-80a18e9b3f79",
            "title": "GRW Sekundarstufe II (Sachsen, Lehrplan FULL Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SN/upper-secondary/source-extraction/DE_SN_GRW_SEKII_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-GRW-GYMNASIUM-LEHRPLAN-2024",
                "title": "Lehrplan Gymnasium Gemeinschaftskunde/Rechtserziehung/Wirtschaft Sachsen",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-grw-sachsen-2019.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/76/1IrLTgST5OTPa55GLt6b",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 131,
            "passages": 19,
            "mappedSourceGoals": 131,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 131,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek II kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.34351145038168,
              "p90Words": 12,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche SN-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-grw-sachsen-2019.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "19/19 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus SN-SekII-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "131 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "131 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -13%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "131 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "fba5d5a4-9eda-588e-b674-78407d62bce7",
            "title": "Sozialkunde und Wirtschaftslehre Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan FULL Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_SOZIALKUNDE_WIRTSCHAFTSLEHRE_SEKI_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-SOZIALKUNDE-GYMNASIUM-2022",
                "title": "Fachlehrplan Sozialkunde Gymnasium Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Sozialkunde_Gym_01082022_swd.pdf",
                "url": "https://www.bildung-lsa.de/files/b45de329c361a40a2f0a7211902d5815/FLP_Sozi_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "ST-WIRTSCHAFTSLEHRE-GYMNASIUM-2024",
                "title": "Fachlehrplan Wirtschaftslehre Gymnasium Sachsen-Anhalt 2024",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Wirtschaftslehre_Gymnasium_01082024.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/FLP_Wirtschaftslehre_010824_LTd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 169,
            "passages": 21,
            "mappedSourceGoals": 169,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 168,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.266272189349113,
              "p90Words": 12,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche ST-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Sozialkunde_Gym_01082022_swd.pdf, curricula/DE/Gymnasium/input/ST/FLP_Wirtschaftslehre_Gymnasium_01082024.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "21/21 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus ST-SekI-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "169 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "169 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 122%. Kritisch gepruefte Abweichung: Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "169 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e6d508da-da9b-56a7-8c5d-1c21a49d36b9",
            "title": "Sozialkunde und Wirtschaftslehre Sekundarstufe II (Sachsen-Anhalt, Fachlehrplan FULL Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/ST/upper-secondary/source-extraction/DE_ST_SOZIALKUNDE_WIRTSCHAFTSLEHRE_SEKII_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-SOZIALKUNDE-GYMNASIUM-2022",
                "title": "Fachlehrplan Sozialkunde Gymnasium Sachsen-Anhalt 2022",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Sozialkunde_Gym_01082022_swd.pdf",
                "url": "https://www.bildung-lsa.de/files/b45de329c361a40a2f0a7211902d5815/FLP_Sozi_Gym_01082022_swd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "ST-WIRTSCHAFTSLEHRE-GYMNASIUM-2024",
                "title": "Fachlehrplan Wirtschaftslehre Gymnasium Sachsen-Anhalt 2024",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Wirtschaftslehre_Gymnasium_01082024.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/FLP_Wirtschaftslehre_010824_LTd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 129,
            "passages": 14,
            "mappedSourceGoals": 129,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 2,
            "partialMappings": 127,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek II kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.279069767441861,
              "p90Words": 12,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche ST-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Sozialkunde_Gym_01082022_swd.pdf, curricula/DE/Gymnasium/input/ST/FLP_Wirtschaftslehre_Gymnasium_01082024.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "14/14 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus ST-SekII-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "129 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "129 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -14%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "129 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "597cf508-4a6a-58c6-17e0-8678eaa1d189",
            "title": "Sozialkunde und Wirtschaft/Recht Sekundarstufe I (Thueringen, Lehrplan FULL Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Politik und Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_SOZIALKUNDE_WIRTSCHAFT_RECHT_SEKI_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-SOZIALKUNDE-SEKI-2012",
                "title": "Lehrplan Sozialkunde Gymnasium Thueringen 2012",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Sozialkunde_2012.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/15753?dateiname=LP_GY_SK_Endfassung_21_06_13.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "TH-WIRTSCHAFT-RECHT-GYMNASIUM-2012",
                "title": "Lehrplan Wirtschaft und Recht Gymnasium Thueringen 2012",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Wirtschaft_und_Recht_2012.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/15754?dateiname=LP_GY_WR_Endfassung_290713_1.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 109,
            "passages": 9,
            "mappedSourceGoals": 109,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 109,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.926605504587156,
              "p90Words": 11,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche TH-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Sozialkunde_2012.pdf, curricula/DE/Gymnasium/input/TH/LP_GY_Wirtschaft_und_Recht_2012.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "9/9 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus TH-SekI-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "109 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "109 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median 43%. Kritisch gepruefte Abweichung: Sek I kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "109 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "0fa7592b-902e-504d-bde5-4011d55d8c81",
            "title": "Sozialkunde und Wirtschaft/Recht Sekundarstufe II (Thueringen, Lehrplan FULL Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Politik und Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/TH/upper-secondary/source-extraction/DE_TH_SOZIALKUNDE_WIRTSCHAFT_RECHT_SEKII_FULL.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-SOZIALKUNDE-GYOS-2009",
                "title": "Ziele und inhaltliche Orientierungen Sozialkunde gymnasiale Oberstufe Thueringen",
                "path": "curricula/DE/Gymnasium/input/TH/GYOS_LP_Sozialkunde_2009.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/6391?dateiname=gyos_lp_sk.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "key": "TH-WIRTSCHAFT-RECHT-GYMNASIUM-2012",
                "title": "Lehrplan Wirtschaft und Recht Gymnasium Thueringen 2012",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Wirtschaft_und_Recht_2012.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/15754?dateiname=LP_GY_WR_Endfassung_290713_1.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 208,
            "passages": 23,
            "mappedSourceGoals": 208,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 208,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Sek II kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.822115384615385,
              "p90Words": 10,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-sources-local",
                    "label": "Amtliche TH-Originalquellen liegen lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/GYOS_LP_Sozialkunde_2009.pdf, curricula/DE/Gymnasium/input/TH/LP_GY_Wirtschaft_und_Recht_2012.pdf"
                  },
                  {
                    "id": "passages-extracted",
                    "label": "Kompetenz- und Themenpassagen extrahiert",
                    "passed": true,
                    "details": "23/23 Themenpassagen."
                  },
                  {
                    "id": "source-extraction-not-legacy",
                    "label": "Source-Extraction basiert auf amtlichen Quellen statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Keine Live-Legacy-Snapshot-Datei als Quelle."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Source-Ziele aus TH-SekII-PoWi-Passagen erzeugt",
                    "passed": true,
                    "details": "208 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: 0."
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Alle Source-Ziele sind passage-belegt."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "208 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median 39%. Kritisch gepruefte Abweichung: Sek II kombiniert die amtliche politische/gesellschaftliche Quelle mit der wirtschaftlich relevanten Wirtschaftsspur; auffaellige Zielzahlen wurden gegen die Originalquelle plausibilisiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "208 Source-Ziele liegen vor; MAPPING-3 wurde gegen diese Source-Extraction-IDs abgeschlossen."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-politics-economics-crossstage",
          "label": "Sekundarstufe I/II",
          "selectedAtomicGoals": 407,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 407,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 407,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-104",
              "status": "pass",
              "summary": "Route endpoints are visible in all relevant composition views.",
              "metrics": {
                "relevantCompositionViews": 15,
                "requiredMotivationAnchors": 1,
                "requiredTerminalAutonomyGoals": 14,
                "viewsMissingMotivationAnchors": 0,
                "viewsMissingTerminalAutonomyGoals": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 14,
                "terminalAutonomyGoalsWithExamData": 14,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 512,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 4169,
            "sourceOriginalGoals": 4169,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 4169,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 4169,
            "sourceMappedToViewAtomicGoals": 4169,
            "sourceOriginalGoals": 4169,
            "sourceFullyCoveredOriginalGoals": 4169,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 53,
            "maxVisibleAtomicGoals": 308,
            "maxSourceBackedAtomicGoals": 308,
            "totalAtomicGoals": 413
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 399 upper-secondary source-to-canonical mapping edge(s), including 0 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 33,
            "sourceGoals": 2440,
            "sourceGoalsWithCourseLevel": 2272,
            "gkLkSourceGoals": 1405,
            "lkSourceGoals": 775,
            "unspecifiedSourceGoals": 216,
            "checkedMappingEdges": 399,
            "defaultedUnspecifiedMappingEdges": 215,
            "reviewedCourseLevelExceptions": 0,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 33,
            "peerBaselineChecks": 25,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 1,
            "leafGoals": 413,
            "atomic": 413,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 107/413 ordinary atomic goals intentionally use memorization support, 62/62 primary cards are kept with origin traces, all 5 memory goals are traced, and 672 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 413,
            "noMemoryNeeded": 306,
            "memoryRequired": 107,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 62,
            "keptCards": 62,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 15,
            "visibilityCheckedMemoryRequiredGoals": 672,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 5,
            "tracedMemoryGoals": 5,
            "untracedMemoryGoals": 0,
            "deckIds": 5,
            "deckFiles": 5,
            "cardRows": 62
          },
          "details": [
            "canonical-politics-economics-full: audit report docs/qa-ci/status/memory-card-review-canonical-politics-economics-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "28 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 28
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 1572,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 1572",
            "diagnostic finding type APV-202: 1572"
          ]
        }
      ]
    },
    {
      "landscapeId": "f145785b-0c44-5246-af66-8a153d202cb9",
      "title": "Polnisch (Gymnasium, DE)",
      "subject": "Polnisch",
      "frameworkId": "canonical-gymnasium-polish",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_POLNISCH.de.json",
      "maturity": "M0",
      "goals": 5,
      "atomicGoals": 4,
      "clusterGoals": 1,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 3,
        "rawAtomicGoals": 4,
        "coveredJurisdictions": 1,
        "sourceBackedJurisdictions": 1,
        "sourceCompleteJurisdictions": 0,
        "cleanJurisdictions": 0,
        "partialJurisdictions": 0,
        "errorJurisdictions": 1,
        "maxVisibleAtomicGoals": 3,
        "maxSourceBackedAtomicGoals": 3,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 4,
        "sourceMappedToViewAtomicGoals": 4,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 0,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 0,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 5,
        "sourceFullyCoveredOriginalGoals": 5,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 5,
            "visibleAtomicGoals": 3,
            "visibleClusterGoals": 2,
            "viewAtomicGoals": 3,
            "sourceBackedAtomicGoals": 3,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 4,
            "sourceMappedToViewAtomicGoals": 4,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 5,
            "sourceFullyCoveredOriginalGoals": 5,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "error"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 1,
        "completeSources": 0,
        "incompleteSources": 0,
        "blockedSources": 1,
        "maxCompletedSteps": 0,
        "totalSteps": 3,
        "currentStep": "MAPPING-1",
        "sources": [
          {
            "sourceLandscapeId": "21148204-794c-515d-ae20-c4d5cd4e56d8",
            "title": "Polnisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "path": "curricula/DE/Gymnasium/mapping/DE-BY/gymnasium/bavaria_polish_to_canonical_polish.json",
            "sourceKind": "missing-extraction",
            "currentStep": "MAPPING-1",
            "completedSteps": 0,
            "totalSteps": 3,
            "sourceGoals": 0,
            "passages": 0,
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "incomplete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-extraction-file-present",
                    "label": "Persistiertes Source-Extraction-Artefakt vorhanden",
                    "passed": false,
                    "details": "Für diese Source-Landschaft ist noch keine geprüfte source-extraction-Datei registriert."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "blocked",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": false,
                    "details": "Source-Ziele dürfen erst nach vollständig extrahierten Originalpassagen als abgeschlossen gelten."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "blocked",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": false,
                    "details": "Das Mapping auf SkillPilot-Ziele darf erst nach geprüften Source-Zielen als abgeschlossen gelten."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 5,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "fail",
          "summary": "0/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 0,
            "emptySourceJurisdictions": 15,
            "missingReadableSourceInventoryJurisdictions": 1,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 0,
            "sourceOriginalGoals": 5,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BY: 5 source original goal(s) are registered, but no readable source inventory goals were extracted",
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-HE: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "0/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 1,
            "sourceBackedJurisdictions": 1,
            "sourceCompleteJurisdictions": 0,
            "fullCoverageJurisdictions": 0,
            "uncoveredJurisdictions": 15,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 4,
            "sourceMappedToViewAtomicGoals": 4,
            "sourceOriginalGoals": 5,
            "sourceFullyCoveredOriginalGoals": 5,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 0,
            "partialJurisdictions": 0,
            "errorJurisdictions": 1,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 3,
            "maxSourceBackedAtomicGoals": 3,
            "totalAtomicGoals": 3
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-HE: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "not_configured",
          "summary": "No persisted source-extraction mapping with GK/LK course-level metadata is configured for this curriculum."
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 0,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "242ba9bd-7ec7-5ec3-a15e-4f0f2b01aa37",
      "title": "Russisch (Gymnasium, DE)",
      "subject": "Russisch",
      "frameworkId": "canonical-gymnasium-russian",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_RUSSISCH.de.json",
      "maturity": "M0",
      "goals": 8,
      "atomicGoals": 7,
      "clusterGoals": 1,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 6,
        "rawAtomicGoals": 7,
        "coveredJurisdictions": 1,
        "sourceBackedJurisdictions": 1,
        "sourceCompleteJurisdictions": 0,
        "cleanJurisdictions": 0,
        "partialJurisdictions": 0,
        "errorJurisdictions": 1,
        "maxVisibleAtomicGoals": 6,
        "maxSourceBackedAtomicGoals": 6,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 7,
        "sourceMappedToViewAtomicGoals": 7,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 0,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 0,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 8,
        "sourceFullyCoveredOriginalGoals": 8,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 8,
            "visibleAtomicGoals": 6,
            "visibleClusterGoals": 2,
            "viewAtomicGoals": 6,
            "sourceBackedAtomicGoals": 6,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 7,
            "sourceMappedToViewAtomicGoals": 7,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 8,
            "sourceFullyCoveredOriginalGoals": 8,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "error"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 1,
        "completeSources": 0,
        "incompleteSources": 0,
        "blockedSources": 1,
        "maxCompletedSteps": 0,
        "totalSteps": 3,
        "currentStep": "MAPPING-1",
        "sources": [
          {
            "sourceLandscapeId": "2b6e79f6-5130-56cb-9a2f-d08e6dc4b4d7",
            "title": "Russisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "path": "curricula/DE/Gymnasium/mapping/DE-BY/gymnasium/bavaria_russian_to_canonical_russian.json",
            "sourceKind": "missing-extraction",
            "currentStep": "MAPPING-1",
            "completedSteps": 0,
            "totalSteps": 3,
            "sourceGoals": 0,
            "passages": 0,
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "incomplete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-extraction-file-present",
                    "label": "Persistiertes Source-Extraction-Artefakt vorhanden",
                    "passed": false,
                    "details": "Für diese Source-Landschaft ist noch keine geprüfte source-extraction-Datei registriert."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "blocked",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": false,
                    "details": "Source-Ziele dürfen erst nach vollständig extrahierten Originalpassagen als abgeschlossen gelten."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "blocked",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": false,
                    "details": "Das Mapping auf SkillPilot-Ziele darf erst nach geprüften Source-Zielen als abgeschlossen gelten."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 8,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "fail",
          "summary": "0/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 0,
            "emptySourceJurisdictions": 15,
            "missingReadableSourceInventoryJurisdictions": 1,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 0,
            "sourceOriginalGoals": 8,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BY: 8 source original goal(s) are registered, but no readable source inventory goals were extracted",
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-HE: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "0/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 1,
            "sourceBackedJurisdictions": 1,
            "sourceCompleteJurisdictions": 0,
            "fullCoverageJurisdictions": 0,
            "uncoveredJurisdictions": 15,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 7,
            "sourceMappedToViewAtomicGoals": 7,
            "sourceOriginalGoals": 8,
            "sourceFullyCoveredOriginalGoals": 8,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 0,
            "partialJurisdictions": 0,
            "errorJurisdictions": 1,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 6,
            "maxSourceBackedAtomicGoals": 6,
            "totalAtomicGoals": 6
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-HE: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "not_configured",
          "summary": "No persisted source-extraction mapping with GK/LK course-level metadata is configured for this curriculum."
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 0,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "90eedebf-9ea8-5247-85dd-31c147f907c3",
      "title": "Spanisch (Gymnasium, DE)",
      "subject": "Spanisch",
      "frameworkId": "canonical-gymnasium-spanish",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_SPANISCH.de.json",
      "maturity": "M0",
      "goals": 83,
      "atomicGoals": 59,
      "clusterGoals": 24,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 44,
        "rawAtomicGoals": 59,
        "coveredJurisdictions": 2,
        "sourceBackedJurisdictions": 2,
        "sourceCompleteJurisdictions": 2,
        "cleanJurisdictions": 2,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 44,
        "maxSourceBackedAtomicGoals": 44,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 50,
        "sourceMappedToViewAtomicGoals": 50,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 50,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 50,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 50,
        "sourceFullyCoveredOriginalGoals": 50,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 83,
            "visibleAtomicGoals": 44,
            "visibleClusterGoals": 39,
            "viewAtomicGoals": 44,
            "sourceBackedAtomicGoals": 44,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 44,
            "sourceMappedToViewAtomicGoals": 44,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 44,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 44,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 44,
            "sourceFullyCoveredOriginalGoals": 44,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 83,
            "visibleAtomicGoals": 44,
            "visibleClusterGoals": 39,
            "viewAtomicGoals": 44,
            "sourceBackedAtomicGoals": 44,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 6,
            "sourceMappedToViewAtomicGoals": 6,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 6,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 6,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 6,
            "sourceFullyCoveredOriginalGoals": 6,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 2,
        "completeSources": 2,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 3,
        "totalSteps": 3,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "8dba4715-f75e-5339-9e99-02236e4b80dd",
            "title": "Spanisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "subject": "Spanisch",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_SPANISCH_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Spanisch",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Spanisch.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/spanisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 6,
            "passages": 1,
            "mappedSourceGoals": 6,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 1,
            "partialMappings": 5,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 2,
              "p90Words": 2,
              "maxWords": 2,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Spanisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Spanisch.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Spanisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 1/1 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Spanisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "6 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "6/6 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 6/6; Mappings: 6/6; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "936efc61-a4d5-49fd-8694-085d1347db80",
            "title": "Spanisch Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Spanisch",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_SPANISCH_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Spanisch Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_SPANISCH.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula/gymnasiale-oberstufe/spanisch",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 44,
            "passages": 24,
            "mappedSourceGoals": 44,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 44,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage.",
              "status": "accepted",
              "rationale": "Converted from the existing committed source landscape snapshot; non-curricular motivation/practice/assessment nodes are excluded from source coverage."
            },
            "sourceGoalGranularity": {
              "averageWords": 16.84090909090909,
              "p90Words": 19,
              "maxWords": 21,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte Spanisch-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_SPANISCH.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Spanisch-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 24/24 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Spanisch-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "44 Source-Ziele."
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel oder dient als Strukturpassage",
                    "passed": true,
                    "details": "Passage-Zuordnung wurde aus der bestehenden Source-Hierarchie abgeleitet."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "44/44 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 44/44; Mappings: 44/44; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 83,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "warn",
          "summary": "2/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 2,
            "emptySourceJurisdictions": 14,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 50,
            "sourceOriginalGoals": 50,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 50,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "2/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 2,
            "sourceBackedJurisdictions": 2,
            "sourceCompleteJurisdictions": 2,
            "fullCoverageJurisdictions": 2,
            "uncoveredJurisdictions": 14,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 50,
            "sourceMappedToViewAtomicGoals": 50,
            "sourceOriginalGoals": 50,
            "sourceFullyCoveredOriginalGoals": 50,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 2,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 44,
            "maxSourceBackedAtomicGoals": 44,
            "totalAtomicGoals": 44
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 44 upper-secondary source-to-canonical mapping edge(s), including 8 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 2,
            "sourceGoals": 44,
            "sourceGoalsWithCourseLevel": 44,
            "gkLkSourceGoals": 36,
            "lkSourceGoals": 8,
            "unspecifiedSourceGoals": 0,
            "checkedMappingEdges": 44,
            "defaultedUnspecifiedMappingEdges": 0,
            "reviewedCourseLevelExceptions": 8,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 2,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "0900df4c-beeb-5542-86f9-bd479c94746a",
      "title": "Tschechisch (Gymnasium, DE)",
      "subject": "Tschechisch",
      "frameworkId": "canonical-gymnasium-czech",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_TSCHECHISCH.de.json",
      "maturity": "M0",
      "goals": 5,
      "atomicGoals": 4,
      "clusterGoals": 1,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 3,
        "rawAtomicGoals": 4,
        "coveredJurisdictions": 1,
        "sourceBackedJurisdictions": 1,
        "sourceCompleteJurisdictions": 0,
        "cleanJurisdictions": 0,
        "partialJurisdictions": 0,
        "errorJurisdictions": 1,
        "maxVisibleAtomicGoals": 3,
        "maxSourceBackedAtomicGoals": 3,
        "maxAtomicCoveragePercent": 100,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 0,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 4,
        "sourceMappedToViewAtomicGoals": 4,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 0,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 0,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 5,
        "sourceFullyCoveredOriginalGoals": 5,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 5,
            "visibleAtomicGoals": 3,
            "visibleClusterGoals": 2,
            "viewAtomicGoals": 3,
            "sourceBackedAtomicGoals": 3,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 4,
            "sourceMappedToViewAtomicGoals": 4,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 5,
            "sourceFullyCoveredOriginalGoals": 5,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 100,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "error"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 0,
            "visibleAtomicGoals": 0,
            "visibleClusterGoals": 0,
            "viewAtomicGoals": 0,
            "sourceBackedAtomicGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 0,
            "sourceMappedToViewAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 0,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 0,
            "sourceFullyCoveredOriginalGoals": 0,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 0,
            "sourceBackedCoveragePercent": 0,
            "sourceReverseCoveragePercent": 0,
            "status": "none"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 1,
        "completeSources": 0,
        "incompleteSources": 0,
        "blockedSources": 1,
        "maxCompletedSteps": 0,
        "totalSteps": 3,
        "currentStep": "MAPPING-1",
        "sources": [
          {
            "sourceLandscapeId": "097f3667-2488-57b2-a3e0-2cb334e422a2",
            "title": "Tschechisch (Gymnasium)",
            "jurisdiction": "DE-BY",
            "path": "curricula/DE/Gymnasium/mapping/DE-BY/gymnasium/bavaria_czech_to_canonical_czech.json",
            "sourceKind": "missing-extraction",
            "currentStep": "MAPPING-1",
            "completedSteps": 0,
            "totalSteps": 3,
            "sourceGoals": 0,
            "passages": 0,
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "incomplete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-extraction-file-present",
                    "label": "Persistiertes Source-Extraction-Artefakt vorhanden",
                    "passed": false,
                    "details": "Für diese Source-Landschaft ist noch keine geprüfte source-extraction-Datei registriert."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "blocked",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "mapping-1-complete",
                    "label": "MAPPING-1 abgeschlossen",
                    "passed": false,
                    "details": "Source-Ziele dürfen erst nach vollständig extrahierten Originalpassagen als abgeschlossen gelten."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "blocked",
                "dependsOn": [
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": false,
                    "details": "Das Mapping auf SkillPilot-Ziele darf erst nach geprüften Source-Zielen als abgeschlossen gelten."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 5,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "fail",
          "summary": "0/16 declared Bundesland source inventories are readable and fully registered; 0 original source URL issue(s).",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 0,
            "emptySourceJurisdictions": 15,
            "missingReadableSourceInventoryJurisdictions": 1,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 0,
            "sourceOriginalGoals": 5,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 0,
            "sourceUnregisteredAtomicGoals": 0
          },
          "details": [
            "DE-BY: 5 source original goal(s) are registered, but no readable source inventory goals were extracted",
            "DE-BW: no source inventory goals are registered or extracted",
            "DE-HE: no source inventory goals are registered or extracted",
            "DE-BB: no source inventory goals are registered or extracted",
            "DE-BE: no source inventory goals are registered or extracted",
            "DE-NI: no source inventory goals are registered or extracted",
            "DE-NW: no source inventory goals are registered or extracted",
            "DE-SH: no source inventory goals are registered or extracted",
            "DE-HB: no source inventory goals are registered or extracted",
            "DE-HH: no source inventory goals are registered or extracted",
            "DE-MV: no source inventory goals are registered or extracted",
            "DE-RP: no source inventory goals are registered or extracted",
            "DE-SL: no source inventory goals are registered or extracted",
            "DE-SN: no source inventory goals are registered or extracted",
            "DE-ST: no source inventory goals are registered or extracted",
            "DE-TH: no source inventory goals are registered or extracted"
          ]
        },
        {
          "id": "CQR-003",
          "status": "warn",
          "summary": "0/16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 1,
            "sourceBackedJurisdictions": 1,
            "sourceCompleteJurisdictions": 0,
            "fullCoverageJurisdictions": 0,
            "uncoveredJurisdictions": 15,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 4,
            "sourceMappedToViewAtomicGoals": 4,
            "sourceOriginalGoals": 5,
            "sourceFullyCoveredOriginalGoals": 5,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 0,
            "partialJurisdictions": 0,
            "errorJurisdictions": 1,
            "minSourceBackedAtomicGoals": 0,
            "maxVisibleAtomicGoals": 3,
            "maxSourceBackedAtomicGoals": 3,
            "totalAtomicGoals": 3
          },
          "details": [
            "DE-BW: no source-backed atomic goals",
            "DE-HE: no source-backed atomic goals",
            "DE-BB: no source-backed atomic goals",
            "DE-BE: no source-backed atomic goals",
            "DE-NI: no source-backed atomic goals",
            "DE-NW: no source-backed atomic goals",
            "DE-SH: no source-backed atomic goals",
            "DE-HB: no source-backed atomic goals",
            "DE-HH: no source-backed atomic goals",
            "DE-MV: no source-backed atomic goals",
            "DE-RP: no source-backed atomic goals",
            "DE-SL: no source-backed atomic goals",
            "DE-SN: no source-backed atomic goals",
            "DE-ST: no source-backed atomic goals",
            "DE-TH: no source-backed atomic goals"
          ]
        },
        {
          "id": "CQR-004",
          "status": "not_configured",
          "summary": "No persisted source-extraction mapping with GK/LK course-level metadata is configured for this curriculum."
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 0,
            "peerBaselineChecks": 0,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "not_configured",
          "summary": "No semantic atomicity review config is registered for this curriculum."
        },
        {
          "id": "CQR-302",
          "status": "not_configured",
          "summary": "No memory-card review config is registered for this curriculum."
        },
        {
          "id": "CQR-401",
          "status": "not_configured",
          "summary": "No composition view is registered for this curriculum.",
          "metrics": {
            "compositionViews": 0
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          }
        },
        {
          "id": "CQR-101",
          "status": "not_configured",
          "summary": "No explicit route-coverage profile is registered for this curriculum."
        }
      ]
    },
    {
      "landscapeId": "605bdaf6-32d5-56fd-8d92-5a80c2fd2901",
      "title": "Wirtschaftswissenschaften (Gymnasium, DE)",
      "subject": "Wirtschaftswissenschaften",
      "frameworkId": "canonical-gymnasium-economics",
      "path": "curricula/DE/Gymnasium/canonical/DE_DEU_S_GYM_CANONICAL_WIRTSCHAFT.de.json",
      "maturity": "M6",
      "goals": 370,
      "atomicGoals": 333,
      "clusterGoals": 37,
      "jurisdictionCoverage": {
        "dimension": "jurisdiction",
        "totalJurisdictions": 16,
        "totalAtomicGoals": 274,
        "rawAtomicGoals": 333,
        "coveredJurisdictions": 16,
        "sourceBackedJurisdictions": 16,
        "sourceCompleteJurisdictions": 16,
        "cleanJurisdictions": 16,
        "partialJurisdictions": 0,
        "errorJurisdictions": 0,
        "maxVisibleAtomicGoals": 272,
        "maxSourceBackedAtomicGoals": 272,
        "maxAtomicCoveragePercent": 99.3,
        "maxSourceBackedCoveragePercent": 100,
        "unsupportedAssignedAtomicGoals": 0,
        "surrogateBackedAtomicGoals": 109,
        "partialSourceLinkedAtomicGoals": 0,
        "sourceAtomicGoals": 2109,
        "sourceMappedToViewAtomicGoals": 2109,
        "unmappedSourceAtomicGoals": 0,
        "sourceExtractedGoals": 2109,
        "sourceUnregisteredGoals": 0,
        "sourceExtractedAtomicGoals": 2109,
        "sourceUnregisteredAtomicGoals": 0,
        "sourceOriginalGoals": 2109,
        "sourceFullyCoveredOriginalGoals": 2109,
        "sourcePartiallyCoveredOriginalGoals": 0,
        "sourceUncoveredOriginalGoals": 0,
        "jurisdictions": [
          {
            "jurisdiction": "DE-BW",
            "labelDe": "Baden-Württemberg",
            "labelEn": "Baden-Wuerttemberg",
            "visibleGoals": 217,
            "visibleAtomicGoals": 157,
            "visibleClusterGoals": 60,
            "viewAtomicGoals": 157,
            "sourceBackedAtomicGoals": 157,
            "surrogateBackedAtomicGoals": 24,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 101,
            "sourceMappedToViewAtomicGoals": 101,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 101,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 101,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 101,
            "sourceFullyCoveredOriginalGoals": 101,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 149,
            "atomicCoveragePercent": 57.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HE",
            "labelDe": "Hessen",
            "labelEn": "Hesse",
            "visibleGoals": 370,
            "visibleAtomicGoals": 272,
            "visibleClusterGoals": 98,
            "viewAtomicGoals": 272,
            "sourceBackedAtomicGoals": 272,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 173,
            "sourceMappedToViewAtomicGoals": 173,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 173,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 173,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 173,
            "sourceFullyCoveredOriginalGoals": 173,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 0,
            "atomicCoveragePercent": 99.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BY",
            "labelDe": "Bayern",
            "labelEn": "Bavaria",
            "visibleGoals": 267,
            "visibleAtomicGoals": 210,
            "visibleClusterGoals": 57,
            "viewAtomicGoals": 210,
            "sourceBackedAtomicGoals": 210,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 184,
            "sourceMappedToViewAtomicGoals": 184,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 184,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 184,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 184,
            "sourceFullyCoveredOriginalGoals": 184,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 108,
            "atomicCoveragePercent": 76.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BB",
            "labelDe": "Brandenburg",
            "labelEn": "Brandenburg",
            "visibleGoals": 188,
            "visibleAtomicGoals": 136,
            "visibleClusterGoals": 52,
            "viewAtomicGoals": 136,
            "sourceBackedAtomicGoals": 136,
            "surrogateBackedAtomicGoals": 20,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 148,
            "sourceMappedToViewAtomicGoals": 148,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 148,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 148,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 148,
            "sourceFullyCoveredOriginalGoals": 148,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 102,
            "atomicCoveragePercent": 49.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-BE",
            "labelDe": "Berlin",
            "labelEn": "Berlin",
            "visibleGoals": 188,
            "visibleAtomicGoals": 136,
            "visibleClusterGoals": 52,
            "viewAtomicGoals": 136,
            "sourceBackedAtomicGoals": 136,
            "surrogateBackedAtomicGoals": 20,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 148,
            "sourceMappedToViewAtomicGoals": 148,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 148,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 148,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 148,
            "sourceFullyCoveredOriginalGoals": 148,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 102,
            "atomicCoveragePercent": 49.6,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NI",
            "labelDe": "Niedersachsen",
            "labelEn": "Lower Saxony",
            "visibleGoals": 142,
            "visibleAtomicGoals": 104,
            "visibleClusterGoals": 38,
            "viewAtomicGoals": 104,
            "sourceBackedAtomicGoals": 104,
            "surrogateBackedAtomicGoals": 28,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 86,
            "sourceMappedToViewAtomicGoals": 86,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 86,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 86,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 86,
            "sourceFullyCoveredOriginalGoals": 86,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 82,
            "atomicCoveragePercent": 38,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-NW",
            "labelDe": "Nordrhein-Westfalen",
            "labelEn": "North Rhine-Westphalia",
            "visibleGoals": 144,
            "visibleAtomicGoals": 104,
            "visibleClusterGoals": 40,
            "viewAtomicGoals": 104,
            "sourceBackedAtomicGoals": 104,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 180,
            "sourceMappedToViewAtomicGoals": 180,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 180,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 180,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 180,
            "sourceFullyCoveredOriginalGoals": 180,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 112,
            "atomicCoveragePercent": 38,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SH",
            "labelDe": "Schleswig-Holstein",
            "labelEn": "Schleswig-Holstein",
            "visibleGoals": 135,
            "visibleAtomicGoals": 95,
            "visibleClusterGoals": 40,
            "viewAtomicGoals": 95,
            "sourceBackedAtomicGoals": 95,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 128,
            "sourceMappedToViewAtomicGoals": 128,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 128,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 128,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 128,
            "sourceFullyCoveredOriginalGoals": 128,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 104,
            "atomicCoveragePercent": 34.7,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HB",
            "labelDe": "Bremen",
            "labelEn": "Bremen",
            "visibleGoals": 111,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 36,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 10,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 57,
            "sourceMappedToViewAtomicGoals": 57,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 57,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 57,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 57,
            "sourceFullyCoveredOriginalGoals": 57,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 73,
            "atomicCoveragePercent": 27.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-HH",
            "labelDe": "Hamburg",
            "labelEn": "Hamburg",
            "visibleGoals": 112,
            "visibleAtomicGoals": 75,
            "visibleClusterGoals": 37,
            "viewAtomicGoals": 75,
            "sourceBackedAtomicGoals": 75,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 90,
            "sourceMappedToViewAtomicGoals": 90,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 90,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 90,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 90,
            "sourceFullyCoveredOriginalGoals": 90,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 84,
            "atomicCoveragePercent": 27.4,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-MV",
            "labelDe": "Mecklenburg-Vorpommern",
            "labelEn": "Mecklenburg-Western Pomerania",
            "visibleGoals": 100,
            "visibleAtomicGoals": 63,
            "visibleClusterGoals": 37,
            "viewAtomicGoals": 63,
            "sourceBackedAtomicGoals": 63,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 143,
            "sourceMappedToViewAtomicGoals": 143,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 143,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 143,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 143,
            "sourceFullyCoveredOriginalGoals": 143,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 72,
            "atomicCoveragePercent": 23,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-RP",
            "labelDe": "Rheinland-Pfalz",
            "labelEn": "Rhineland-Palatinate",
            "visibleGoals": 134,
            "visibleAtomicGoals": 94,
            "visibleClusterGoals": 40,
            "viewAtomicGoals": 94,
            "sourceBackedAtomicGoals": 94,
            "surrogateBackedAtomicGoals": 4,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 61,
            "sourceMappedToViewAtomicGoals": 61,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 61,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 61,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 61,
            "sourceFullyCoveredOriginalGoals": 61,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 98,
            "atomicCoveragePercent": 34.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SL",
            "labelDe": "Saarland",
            "labelEn": "Saarland",
            "visibleGoals": 132,
            "visibleAtomicGoals": 90,
            "visibleClusterGoals": 42,
            "viewAtomicGoals": 90,
            "sourceBackedAtomicGoals": 90,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 55,
            "sourceMappedToViewAtomicGoals": 55,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 55,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 55,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 55,
            "sourceFullyCoveredOriginalGoals": 55,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 100,
            "atomicCoveragePercent": 32.8,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-SN",
            "labelDe": "Sachsen",
            "labelEn": "Saxony",
            "visibleGoals": 108,
            "visibleAtomicGoals": 71,
            "visibleClusterGoals": 37,
            "viewAtomicGoals": 71,
            "sourceBackedAtomicGoals": 71,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 130,
            "sourceMappedToViewAtomicGoals": 130,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 130,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 130,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 130,
            "sourceFullyCoveredOriginalGoals": 130,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 80,
            "atomicCoveragePercent": 25.9,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-ST",
            "labelDe": "Sachsen-Anhalt",
            "labelEn": "Saxony-Anhalt",
            "visibleGoals": 110,
            "visibleAtomicGoals": 72,
            "visibleClusterGoals": 38,
            "viewAtomicGoals": 72,
            "sourceBackedAtomicGoals": 72,
            "surrogateBackedAtomicGoals": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 207,
            "sourceMappedToViewAtomicGoals": 207,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 207,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 207,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 207,
            "sourceFullyCoveredOriginalGoals": 207,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 81,
            "atomicCoveragePercent": 26.3,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          },
          {
            "jurisdiction": "DE-TH",
            "labelDe": "Thueringen",
            "labelEn": "Thuringia",
            "visibleGoals": 153,
            "visibleAtomicGoals": 111,
            "visibleClusterGoals": 42,
            "viewAtomicGoals": 111,
            "sourceBackedAtomicGoals": 111,
            "surrogateBackedAtomicGoals": 3,
            "unsupportedAssignedAtomicGoals": 0,
            "partialSourceLinkedAtomicGoals": 0,
            "sourceAtomicGoals": 218,
            "sourceMappedToViewAtomicGoals": 218,
            "unmappedSourceAtomicGoals": 0,
            "sourceExtractedGoals": 218,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 218,
            "sourceUnregisteredAtomicGoals": 0,
            "sourceOriginalGoals": 218,
            "sourceFullyCoveredOriginalGoals": 218,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "errors": 0,
            "warnings": 0,
            "diagnosticPartialOnlyWarnings": 122,
            "atomicCoveragePercent": 40.5,
            "sourceBackedCoveragePercent": 100,
            "sourceReverseCoveragePercent": 100,
            "status": "covered"
          }
        ]
      },
      "mappingPipeline": {
        "totalSources": 30,
        "completeSources": 30,
        "incompleteSources": 0,
        "blockedSources": 0,
        "maxCompletedSteps": 4,
        "totalSteps": 4,
        "currentStep": "",
        "sources": [
          {
            "sourceLandscapeId": "393259d6-b701-5cbe-8106-04842e6dbb6f",
            "title": "WAT Sekundarstufe I - wirtschaftliche Inhaltsbereiche (Brandenburg, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Wirtschaft-Arbeit-Technik / Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/source-extraction/DE_BB_WAT_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-WAT-SEKI-2015",
                "title": "Rahmenlehrplan Jahrgangsstufen 1-10 Wirtschaft-Arbeit-Technik Berlin-Brandenburg 2015",
                "path": "curricula/DE/Gymnasium/input/BB/lower-secondary/Teil_C_WAT_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_WAT_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 48,
            "passages": 8,
            "mappedSourceGoals": 48,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 6,
            "partialMappings": 42,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.104166666666667,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Brandenburg-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "PDF liegt lokal vor."
                  },
                  {
                    "id": "source-selection-reviewed",
                    "label": "Wirtschaftlich relevante Lehrplanpassagen wurden fachlich abgegrenzt",
                    "passed": true,
                    "details": "Sek I WAT wurde auf wirtschafts- und berufsbezogene Passagen begrenzt."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Brandenburg-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "48 Source-Ziele."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "48 Source-Ziele; Vergleich HE/BW SEKI (43); Median 43; zulässiger 30%-Median-Korridor 31-55; Abweichung vom Median 12%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "48 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "48/48 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 48/48; Mappings: 48/48; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "936fa4b0-f550-5b6a-895a-d086a3401c6e",
            "title": "Wirtschaftswissenschaft Sekundarstufe II (Brandenburg, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BB",
            "subject": "Wirtschaftswissenschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/source-extraction/DE_BB_WIRTSCHAFT_SEKII_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BB-WIRTSCHAFT-SEKII-2022",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Wirtschaftswissenschaft Berlin-Brandenburg 2022",
                "path": "curricula/DE/Gymnasium/input/BB/upper-secondary/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 100,
            "passages": 24,
            "mappedSourceGoals": 100,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 33,
            "partialMappings": 67,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 4.83,
              "p90Words": 6,
              "maxWords": 9,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Brandenburg-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "PDF liegt lokal vor."
                  },
                  {
                    "id": "source-selection-reviewed",
                    "label": "Wirtschaftlich relevante Lehrplanpassagen wurden fachlich abgegrenzt",
                    "passed": true,
                    "details": "Sek I WAT wurde auf wirtschafts- und berufsbezogene Passagen begrenzt."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Brandenburg-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "100 Source-Ziele."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "100 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median -13%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "100 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "100/100 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 100/100; Mappings: 100/100; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2a5d2507-6668-5a47-8730-4563348dd808",
            "title": "WAT Sekundarstufe I - wirtschaftliche Inhaltsbereiche (Berlin, RLP 2015 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Wirtschaft-Arbeit-Technik / Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/source-extraction/DE_BE_WAT_SEKI_RLP_2015.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-WAT-SEKI-2015",
                "title": "Rahmenlehrplan Jahrgangsstufen 1-10 Wirtschaft-Arbeit-Technik Berlin-Brandenburg 2015",
                "path": "curricula/DE/Gymnasium/input/BE/lower-secondary/Teil_C_WAT_2015_11_10.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/Rahmenlehrplanprojekt/amtliche_Fassung/Teil_C_WAT_2015_11_10.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 48,
            "passages": 8,
            "mappedSourceGoals": 48,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 6,
            "partialMappings": 42,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 7.104166666666667,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Berlin-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "PDF liegt lokal vor."
                  },
                  {
                    "id": "source-selection-reviewed",
                    "label": "Wirtschaftlich relevante Lehrplanpassagen wurden fachlich abgegrenzt",
                    "passed": true,
                    "details": "Sek I WAT wurde auf wirtschafts- und berufsbezogene Passagen begrenzt."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Berlin-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "48 Source-Ziele."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "48 Source-Ziele; Vergleich HE/BW SEKI (43); Median 43; zulässiger 30%-Median-Korridor 31-55; Abweichung vom Median 12%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "48 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "48/48 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 48/48; Mappings: 48/48; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "3ed24627-4b87-54b7-865f-98a0744fd1a5",
            "title": "Wirtschaftswissenschaft Sekundarstufe II (Berlin, RLP GOST 2022 Source-Extraction)",
            "jurisdiction": "DE-BE",
            "subject": "Wirtschaftswissenschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/source-extraction/DE_BE_WIRTSCHAFT_SEKII_GOST_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BE-WIRTSCHAFT-SEKII-2022",
                "title": "Rahmenlehrplan gymnasiale Oberstufe Wirtschaftswissenschaft Berlin-Brandenburg 2022",
                "path": "curricula/DE/Gymnasium/input/BE/upper-secondary/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf",
                "url": "https://bildungsserver.berlin-brandenburg.de/fileadmin/bbb/unterricht/rahmenlehrplaene/gymnasiale_oberstufe/curricula/2022/Teil_C_RLP_GOST_2018_Wirtschaftswissenschaft.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 100,
            "passages": 24,
            "mappedSourceGoals": 100,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 33,
            "partialMappings": 67,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 4.83,
              "p90Words": 6,
              "maxWords": 9,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Berlin-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "PDF liegt lokal vor."
                  },
                  {
                    "id": "source-selection-reviewed",
                    "label": "Wirtschaftlich relevante Lehrplanpassagen wurden fachlich abgegrenzt",
                    "passed": true,
                    "details": "GOST Wirtschaftswissenschaft wurde vollständig für wirtschaftliche Kompetenzbereiche übernommen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Berlin-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "100 Source-Ziele."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "100 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median -13%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "100 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "100/100 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 100/100; Mappings: 100/100; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4137eeb1-2c30-57a4-8390-d27971381e86",
            "title": "Wirtschaft / Berufs- und Studienorientierung Sekundarstufe I (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Wirtschaft / Berufs- und Studienorientierung",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/BW/lower-secondary/source-extraction/DE_BW_WBS_SEKI_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-WBS",
                "title": "Bildungsplan 2016 Gymnasium Wirtschaft / Berufs- und Studienorientierung Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WBS.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_WBS.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 43,
            "passages": 5,
            "mappedSourceGoals": 43,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 9,
            "partialMappings": 34,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 15.767441860465116,
              "p90Words": 22,
              "maxWords": 28,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WBS.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten BW-Wirtschaft-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "5/5 Bereiche; fehlend: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Kompetenzbereich hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Bereiche: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WBS.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Wirtschaft-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "43 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "43 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "43/43 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 43/43; Mappings: 43/43; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4a339f25-cf0f-54c7-8b5d-79ea00e4b72c",
            "title": "Wirtschaft Kursstufe (Baden-Wuerttemberg, BP2016 Source-Extraction)",
            "jurisdiction": "DE-BW",
            "subject": "Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/BW/upper-secondary/source-extraction/DE_BW_WIRTSCHAFT_SEKII_BP2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "BP2016-WI",
                "title": "Bildungsplan 2016 Gymnasium Wirtschaft Baden-Wuerttemberg",
                "path": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WI.pdf",
                "url": "https://www.bildungsplaene-bw.de/site/bildungsplan-rebrush2024/get/documents/lsbw/export-pdf/depot-pdf/ALLG/BP2016BW_ALLG_GYM_WI.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 58,
            "passages": 7,
            "mappedSourceGoals": 58,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 16,
            "partialMappings": 42,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 13.5,
              "p90Words": 21,
              "maxWords": 29,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche BW-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WI.pdf"
                  },
                  {
                    "id": "expected-topic-coverage",
                    "label": "Alle erwarteten BW-Wirtschaft-Kompetenzbereiche sind als Lehrplanpassagen vorhanden",
                    "passed": true,
                    "details": "7/7 Bereiche; fehlend: -"
                  },
                  {
                    "id": "unique-topic-passages",
                    "label": "Jeder Kompetenzbereich hat genau eine Passage",
                    "passed": true,
                    "details": "Doppelte Bereiche: -"
                  },
                  {
                    "id": "passage-text-present",
                    "label": "Jede Passage enthält offiziellen Text",
                    "passed": true,
                    "details": "Passagen ohne Text: -"
                  },
                  {
                    "id": "passage-extraction-source",
                    "label": "Passage-Extraction basiert auf amtlicher PDF-Quelle statt Legacy-Snapshot",
                    "passed": true,
                    "details": "Quelle: curricula/DE/Gymnasium/input/BW/BP2016BW_ALLG_GYM_WI.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den amtlichen BW-Wirtschaft-Kompetenzerwartungen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "58 Source-Ziele"
                  },
                  {
                    "id": "passage-to-source-goal-coverage",
                    "label": "Jede Passage hat mindestens ein Source-Ziel",
                    "passed": true,
                    "details": "Passagen ohne Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -"
                  },
                  {
                    "id": "source-goals-reference-passages",
                    "label": "Jedes Source-Ziel referenziert eine vorhandene Originalpassage",
                    "passed": true,
                    "details": "Ohne Passage: -"
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Source-Span, Parent-Bullet und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "58 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "58/58 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 58/58; Mappings: 58/58; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4959d7df-e430-5c1d-bb7b-873d6252a27f",
            "title": "Wirtschaft und Recht (Bayern, LehrplanPLUS Source-Extraction)",
            "jurisdiction": "DE-BY",
            "subject": "Wirtschaft und Recht",
            "stage": "SekI+SekII",
            "path": "curricula/DE/Gymnasium/input/BY/gymnasium/source-extraction/DE_BY_WIRTSCHAFT_UND_RECHT_GYMNASIUM_LEHRPLANPLUS.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "LehrplanPLUS Bayern Gymnasium Wirtschaft und Recht",
                "path": "curricula/DE/Gymnasium/input/BY/gymnasium/Wirtschaft_und_Recht.json",
                "url": "https://www.lehrplanplus.bayern.de/schulart/gymnasium/fach/wirtschaft-und-recht",
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 184,
            "passages": 35,
            "mappedSourceGoals": 184,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 172,
            "partialMappings": 12,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 19.679347826086957,
              "p90Words": 30,
              "maxWords": 45,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Strukturierte LehrplanPLUS-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/BY/gymnasium/Wirtschaft_und_Recht.json"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Wirtschaft-und-Recht-Quellpassagen sind aus dem vorhandenen Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 35/35 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Wirtschaft-und-Recht-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "184 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "184 Source-Ziele; Vergleich HE/BW SEKI (43) + SEKII (58/173); Median 159; zulässiger 30%-Median-Korridor 111-206; Abweichung vom Median 16%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "184/184 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 184/184; Mappings: 184/184; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2402c226-99ba-54c1-858c-b5f2d9c67429",
            "title": "Wirtschaft-Arbeit-Technik Sekundarstufe I (Bremen, Bildungsplan 2006 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HB/lower-secondary/source-extraction/DE_HB_WAT_SEKI_GYMNASIUM_2006.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-WAT-GYMNASIUM-2006",
                "title": "Bildungsplan Wirtschaft-Arbeit-Technik Gymnasium 5-10 Bremen",
                "path": "curricula/DE/Gymnasium/input/HB/Gy_WAT_2006.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/Gy_WAT_2006.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 29,
            "passages": 4,
            "mappedSourceGoals": 29,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 29,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "HB Sek I ist ein kompakter WAT-Bildungsplan. Die Source-Ziele wurden aus den vier verbindlichen Themenbereichen plus oekonomischen Inhaltsangeboten 9/10 granularisiert; die niedrigere Zielzahl ist fachlich plausibel."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.620689655172415,
              "p90Words": 11,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche HB-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/Gy_WAT_2006.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten HB-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "29 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "29 Source-Ziele; Vergleich HE/BW SEKI (43); Median 43; zulässiger 30%-Median-Korridor 31-55; Abweichung vom Median -33%. Kritisch gepruefte Abweichung: HB Sek I ist ein kompakter WAT-Bildungsplan. Die Source-Ziele wurden aus den vier verbindlichen Themenbereichen plus oekonomischen Inhaltsangeboten 9/10 granularisiert; die niedrigere Zielzahl ist fachlich plausibel."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "fa489d6c-c81e-5e96-8414-786d750e3bd5",
            "title": "Wirtschaftslehre Gymnasiale Oberstufe (Bremen, Bildungsplan 2008 Source-Extraction)",
            "jurisdiction": "DE-HB",
            "subject": "Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HB/upper-secondary/source-extraction/DE_HB_WIRTSCHAFTSLEHRE_SEKII_GYO_2008.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HB-WIRTSCHAFTSLEHRE-GYO-2008",
                "title": "Bildungsplan Wirtschaftslehre Gymnasiale Oberstufe Bremen",
                "path": "curricula/DE/Gymnasium/input/HB/GyO_Wirtschaftslehre_2008.pdf",
                "url": "https://www.lis.bremen.de/sixcms/media.php/13/GyO_Wirtschaftslehre_2008.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 28,
            "passages": 4,
            "mappedSourceGoals": 28,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 28,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "HB Sek II ist thematisch auf Q1 bis Q4 konzentriert und formuliert Standards kompakt. Die Source-Ziele bilden alle verbindlichen themenbezogenen Standards ab."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.357142857142858,
              "p90Words": 11,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche HB-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HB/GyO_Wirtschaftslehre_2008.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten HB-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "28 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "28 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median -76%. Kritisch gepruefte Abweichung: HB Sek II ist thematisch auf Q1 bis Q4 konzentriert und formuliert Standards kompakt. Die Source-Ziele bilden alle verbindlichen themenbezogenen Standards ab."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "a334a745-1d67-4e1d-86a5-dadc04f144d2",
            "title": "Wirtschaftswissenschaften Oberstufe (Hessen, KC 2024)",
            "jurisdiction": "DE-HE",
            "subject": "Wirtschaftswissenschaften",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-extraction/DE_HE_WIRTSCHAFT_SEKII_KC2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "title": "Kerncurriculum Gymnasiale Oberstufe Wirtschaftswissenschaften Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/kerncurriculum_gymnasiale_oberstufe-wirtschaftswissenschaften.pdf",
                "url": "https://kultus.hessen.de/sites/kultus.hessen.de/files/2024-11/kerncurriculum_gymnasiale_oberstufe-wirtschaftswissenschaften.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              },
              {
                "title": "Strukturierter KC-Snapshot Wirtschaftswissenschaften Hessen 2024",
                "path": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_WIRTSCHAFT.de.json.snapshot",
                "url": "https://kultus.hessen.de/unterricht/kerncurricula-und-lehrplaene/kerncurricula/gymnasiale-oberstufe-ab-schuljahr-20242025-kerncurricula",
                "official": false,
                "available": true,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 173,
            "passages": 20,
            "mappedSourceGoals": 173,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 173,
            "partialMappings": 0,
            "otherMappings": 0,
            "sourceGoalGranularity": {
              "averageWords": 10.53757225433526,
              "p90Words": 13,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-present",
                    "label": "Amtliches KC-PDF liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/kerncurriculum_gymnasiale_oberstufe-wirtschaftswissenschaften.pdf"
                  },
                  {
                    "id": "structured-source-present",
                    "label": "Strukturierter KC-Snapshot liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HE/upper-secondary/source-json/DE_HES_S_GYM_2_WIRTSCHAFT.de.json.snapshot"
                  },
                  {
                    "id": "topic-passages-extracted",
                    "label": "Wirtschaft-Quellpassagen sind aus dem KC-Snapshot extrahiert",
                    "passed": true,
                    "details": "Erfasst: 20/20 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Wirtschaft-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "173 Source-Ziele."
                  },
                  {
                    "id": "source-goal-ids-unique",
                    "label": "Source-Ziel-IDs sind eindeutig",
                    "passed": true,
                    "details": "Doppelte IDs: -."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollstaendige Source-Ziele: -"
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-review-decisions-reference-source-goals",
                    "label": "M3-Review-Entscheidungen referenzieren gueltige Source-Ziele",
                    "passed": true,
                    "details": "Review-Entscheidungen mit unbekannter Source-ID: 0."
                  },
                  {
                    "id": "m3-review-targets-exist",
                    "label": "M3-Review-Ziele referenzieren vorhandene Canonical-Ziele",
                    "passed": true,
                    "details": "Unbekannte Canonical-Ziele in Mappings: 0."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "173/173 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 173/173; Mappings: 173/173; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "09d4648c-089b-5358-838c-059c111b797d",
            "title": "PGW Sekundarstufe I - wirtschaftliche Inhaltsfelder (Hamburg, Bildungsplan Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Politik/Gesellschaft/Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/HH/lower-secondary/source-extraction/DE_HH_PGW_SEKI_WIRTSCHAFT_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-PGW-SEKI-2022",
                "title": "Bildungsplan Gymnasium Sekundarstufe I Politik/Gesellschaft/Wirtschaft Hamburg",
                "path": "curricula/DE/Gymnasium/input/HH/pgw-gym-seki-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123480/ec95895152120f9d437cdb3c9f987879/pgw-gym-seki-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 30,
            "passages": 4,
            "mappedSourceGoals": 30,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 30,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "HH Sek I ist im amtlichen Bildungsplan kompakt als Inhaltsfeld formuliert. Die Source-Ziele wurden aus Inhaltsliste und wirtschaftsbezogenen Mindestanforderungen granularisiert; die niedrigere Zahl ist fachlich plausibel dokumentiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.2,
              "p90Words": 8,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche HH-PGW-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/pgw-gym-seki-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten HH-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "30 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "30 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median -61%. Kritisch gepruefte Abweichung: HH Sek I ist im amtlichen Bildungsplan kompakt als Inhaltsfeld formuliert. Die Source-Ziele wurden aus Inhaltsliste und wirtschaftsbezogenen Mindestanforderungen granularisiert; die niedrigere Zahl ist fachlich plausibel dokumentiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c6209bcb-e7a5-55e0-8d55-8ae2c6b8abb9",
            "title": "PGW Studienstufe - wirtschaftliche Module (Hamburg, Bildungsplan Source-Extraction)",
            "jurisdiction": "DE-HH",
            "subject": "Politik/Gesellschaft/Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/HH/upper-secondary/source-extraction/DE_HH_PGW_SEKII_WIRTSCHAFT_BILDUNGSPLAN_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "HH-PGW-GYO-2022",
                "title": "Bildungsplan Studienstufe Politik/Gesellschaft/Wirtschaft Hamburg",
                "path": "curricula/DE/Gymnasium/input/HH/p-g-w-gyo-2022-data.pdf",
                "url": "https://www.hamburg.de/resource/blob/123082/9e8fca4bcac88da5c5d6aa02d15b43c8/p-g-w-gyo-2022-data.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 60,
            "passages": 3,
            "mappedSourceGoals": 60,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 60,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "HH Studienstufe enthält ein dichtes Modul Wirtschaft und Nachhaltigkeit plus Konjunkturpolitik und eA-Wahlmodule. Die Zielzahl liegt im Korridor bereits geprüfter integrierter PGW/WiPo-Quellen."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.383333333333334,
              "p90Words": 10,
              "maxWords": 11,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche HH-PGW-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/HH/p-g-w-gyo-2022-data.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten HH-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "60 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "60 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -60%. Kritisch gepruefte Abweichung: HH Studienstufe enthält ein dichtes Modul Wirtschaft und Nachhaltigkeit plus Konjunkturpolitik und eA-Wahlmodule. Die Zielzahl liegt im Korridor bereits geprüfter integrierter PGW/WiPo-Quellen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "49903a24-2e2a-5cac-8483-d5fbe50df18f",
            "title": "Sozialkunde Sekundarstufe I - wirtschaftliche Inhaltsbereiche (Mecklenburg-Vorpommern, Rahmenplan Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Sozialkunde/Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/MV/lower-secondary/source-extraction/DE_MV_SOZIALKUNDE_SEKI_WIRTSCHAFT_RAHMENPLAN_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-SOZIALKUNDE-SEKI-RAHMENPLAN-2023",
                "title": "Rahmenplan Sozialkunde Klasse 7 bis 10 Mecklenburg-Vorpommern",
                "path": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Sozialkunde_Sek_I_Regionale_Schule_Gymnasium.pdf",
                "url": "https://www.bildung-mv.de/export/sites/bildungsserver/.galleries/dokumente/unterricht/rahmenplaene/rp_sozialkunde_sek_I_regs_gym.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 61,
            "passages": 6,
            "mappedSourceGoals": 61,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 61,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "MV Sek I ist Sozialkunde, kein eigenständiges Wirtschaftsfach. Die Extraktion bleibt enger als direkte Wirtschaft-Fachlehrpläne und routet nur wirtschaftlich belastbare Sozialkunde-Module und Querschnittsbezüge."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.60655737704918,
              "p90Words": 11,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche MV-Originalquelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Sozialkunde_Sek_I_Regionale_Schule_Gymnasium.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftliche MV-Passagen wurden aus der amtlichen Quelle extrahiert",
                    "passed": true,
                    "details": "6 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten MV-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "61 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "61 Source-Ziele; Vergleich HE/BW SEKI (43); Median 43; zulässiger 30%-Median-Korridor 31-55; Abweichung vom Median 42%. Kritisch gepruefte Abweichung: MV Sek I ist Sozialkunde, kein eigenständiges Wirtschaftsfach. Die Extraktion bleibt enger als direkte Wirtschaft-Fachlehrpläne und routet nur wirtschaftlich belastbare Sozialkunde-Module und Querschnittsbezüge."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "35c40aeb-0331-5c96-8de9-8e833f4ece7b",
            "title": "Wirtschaft Gymnasiale Oberstufe (Mecklenburg-Vorpommern, Rahmenplan Source-Extraction)",
            "jurisdiction": "DE-MV",
            "subject": "Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/MV/upper-secondary/source-extraction/DE_MV_WIRTSCHAFT_SEKII_RAHMENPLAN_2019.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "MV-WIRTSCHAFT-GO-RAHMENPLAN-2019",
                "title": "Rahmenplan Wirtschaft Gymnasiale Oberstufe Mecklenburg-Vorpommern",
                "path": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Wirtschaft_GOS_MV.pdf",
                "url": "https://service.mvnet.de/_php/download.php?datei_id=1612623",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 82,
            "passages": 8,
            "mappedSourceGoals": 82,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 82,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "MV Sek II nutzt einen eigenen Rahmenplan Wirtschaft. Die Zielzahl liegt im Korridor direkter Wirtschaft-Quellen und bildet die vier Inhaltsfelder mit LK-Erweiterungen ab."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.219512195121951,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche MV-Originalquelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/MV/Rahmenplan_Wirtschaft_GOS_MV.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftliche MV-Passagen wurden aus der amtlichen Quelle extrahiert",
                    "passed": true,
                    "details": "8 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten MV-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "82 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "82 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median -29%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "3794738b-57ac-54fb-8ba9-09d92e33d93d",
            "title": "Politik-Wirtschaft Oberstufe - wirtschaftliche Inhaltsbereiche (Niedersachsen, KC 2018 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Politik-Wirtschaft / Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/source-extraction/DE_NI_POLITIK_WIRTSCHAFT_SEKII_WIRTSCHAFT.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-POWI-SEKII-2018",
                "title": "Kerncurriculum Politik-Wirtschaft für die gymnasiale Oberstufe Niedersachsen 2018",
                "path": "curricula/DE/Gymnasium/input/NI/upper-secondary/pw_go_druck_2018.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=205",
                "landingUrl": "https://cuvo.nibis.de/cuvo.php?k0_0=Fach&k0_1=Dokumentenart&p=search&v0_0=Politik-Wirtschaft&v0_1=Kerncurriculum",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 56,
            "passages": 9,
            "mappedSourceGoals": 56,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 56,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "Nach Review wurden fehlende Berufs-/Studienorientierung sowie eA/LK-nahe wirtschaftliche Inhalte ergänzt. Die verbleibende Unterzahl ist erwartbar, weil Niedersachsen Politik-Wirtschaft integriert und politische-only Kompetenzblöcke nicht in den Wirtschaftskanon geroutet werden."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.107142857142858,
              "p90Words": 12,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Niedersachsen-Politik-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "PDF liegt lokal vor."
                  },
                  {
                    "id": "economic-topic-selection",
                    "label": "Wirtschaftlich relevante Inhaltsbereiche aus Politik-Wirtschaft wurden selektiert",
                    "passed": true,
                    "details": "Politische Passagen werden nicht automatisch in den Wirtschaftskanon übernommen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Niedersachsen-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "56 Source-Ziele."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "56 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -63%. Kritisch gepruefte Abweichung: Nach Review wurden fehlende Berufs-/Studienorientierung sowie eA/LK-nahe wirtschaftliche Inhalte ergänzt. Die verbleibende Unterzahl ist erwartbar, weil Niedersachsen Politik-Wirtschaft integriert und politische-only Kompetenzblöcke nicht in den Wirtschaftskanon geroutet werden."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "56 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "56/56 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 56/56; Mappings: 56/56; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "52a4052e-a170-5877-8346-56605704020b",
            "title": "Politik-Wirtschaft Sekundarstufe I - wirtschaftliche Inhaltsbereiche (Niedersachsen, KC 2015 Source-Extraction)",
            "jurisdiction": "DE-NI",
            "subject": "Politik-Wirtschaft / Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/source-extraction/DE_NI_POLITIK_WIRTSCHAFT_SEKI_WIRTSCHAFT.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NI-POWI-SEKI-2015",
                "title": "Kerncurriculum Politik-Wirtschaft für das Gymnasium Schuljahrgänge 8-10 Niedersachsen 2015",
                "path": "curricula/DE/Gymnasium/input/NI/lower-secondary/pw_gym_si_kc_druck.pdf",
                "url": "https://cuvo.nibis.de/index.php?p=download&upload=65",
                "landingUrl": "https://cuvo.nibis.de/cuvo.php?k0_0=Fach&k0_1=Dokumentenart&p=search&v0_0=Politik-Wirtschaft&v0_1=Kerncurriculum",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 30,
            "passages": 5,
            "mappedSourceGoals": 30,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 30,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NI Sek I ist ein integriertes Politik-Wirtschaft-KC. Wirtschaftliche Tabellenanteile wurden vollständig übernommen; rein politische Entscheidungsprozess-Kompetenzen bleiben im Politik-und-Wirtschaft-Kanon."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.5,
              "p90Words": 12,
              "maxWords": 16,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche Niedersachsen-Politik-Wirtschaft-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "PDF liegt lokal vor."
                  },
                  {
                    "id": "economic-topic-selection",
                    "label": "Wirtschaftlich relevante Inhaltsbereiche aus Politik-Wirtschaft wurden selektiert",
                    "passed": true,
                    "details": "Politische Passagen werden nicht automatisch in den Wirtschaftskanon übernommen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Niedersachsen-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "30 Source-Ziele."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "30 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median -61%. Kritisch gepruefte Abweichung: NI Sek I ist ein integriertes Politik-Wirtschaft-KC. Wirtschaftliche Tabellenanteile wurden vollständig übernommen; rein politische Entscheidungsprozess-Kompetenzen bleiben im Politik-und-Wirtschaft-Kanon."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "30 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "30/30 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 30/30; Mappings: 30/30; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "42fd433e-bcf1-5d01-8122-4721adfb58a8",
            "title": "Sozialwissenschaften/Wirtschaft Oberstufe - wirtschaftliche Inhaltsbereiche (Nordrhein-Westfalen, KLP GOSt Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Sozialwissenschaften/Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/source-extraction/DE_NW_SOZIALWISSENSCHAFTEN_WIRTSCHAFT_SEKII_KLP.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-SOWI-SEKII-KLP",
                "title": "Kernlehrplan Sozialwissenschaften und Sozialwissenschaften/Wirtschaft Gymnasiale Oberstufe Nordrhein-Westfalen",
                "path": "curricula/DE/Gymnasium/input/NW/upper-secondary/klp_gost_sowi.pdf",
                "url": "https://www.schulentwicklung.nrw.de/lehrplaene/upload/klp_SII/sw/KLP_GOSt_SoWi.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 120,
            "passages": 7,
            "mappedSourceGoals": 120,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 120,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NRW Sek II Sozialwissenschaften/Wirtschaft enthält neben EF-Marktwirtschaft und Q-Wirtschaftspolitik auch wirtschaftlich relevante EU-, Sozialstruktur- und Globalisierungsfelder. Die Zielzahl liegt deshalb oberhalb reiner Wirtschaft-Kursstufenquellen und wurde als fachlich plausibel geprüft."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.133333333333334,
              "p90Words": 10,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche NRW-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "PDF liegt lokal vor."
                  },
                  {
                    "id": "economic-topic-selection",
                    "label": "Wirtschaftlich relevante WiPo/Sowi-Kompetenzbereiche wurden selektiert",
                    "passed": true,
                    "details": "Rein politische Kompetenzbereiche werden nicht in den Wirtschaftskanon übernommen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten NRW-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "120 Source-Ziele."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "120 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median 4%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "120 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "120/120 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 120/120; Mappings: 120/120; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "c08d280e-5e6a-5a1f-8574-0c2a65af32b7",
            "title": "Wirtschaft-Politik Sekundarstufe I - wirtschaftliche Inhaltsbereiche (Nordrhein-Westfalen, KLP G9 2019 Source-Extraction)",
            "jurisdiction": "DE-NW",
            "subject": "Wirtschaft-Politik / Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/source-extraction/DE_NW_WIRTSCHAFT_POLITIK_SEKI_KLP2019_WIRTSCHAFT.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "NW-WIPO-SEKI-KLP2019",
                "title": "Kernlehrplan Wirtschaft-Politik Gymnasium Sekundarstufe I Nordrhein-Westfalen 2019",
                "path": "curricula/DE/Gymnasium/input/NW/lower-secondary/g9_wipo_klp_3429_2019_06_23.pdf",
                "url": "https://lehrplannavigator.nrw.de/system/files/media/document/file/g9_wipo_klp_3429_2019_06_23.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 60,
            "passages": 8,
            "mappedSourceGoals": 60,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 60,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "NRW Sek I weist im KLP Wirtschaft-Politik besonders viele einzelne wirtschaftliche Kompetenzerwartungen in IF 1, 3, 6, 7, 8, 9 und 10 aus. Die hohe Zielzahl wurde gegen den Originaltext geprüft und nicht durch künstliche Zusammenfassung reduziert."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.9,
              "p90Words": 11,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche NRW-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "PDF liegt lokal vor."
                  },
                  {
                    "id": "economic-topic-selection",
                    "label": "Wirtschaftlich relevante WiPo/Sowi-Kompetenzbereiche wurden selektiert",
                    "passed": true,
                    "details": "Rein politische Kompetenzbereiche werden nicht in den Wirtschaftskanon übernommen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten NRW-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "60 Source-Ziele."
                  },
                  {
                    "id": "source-goal-trace-complete",
                    "label": "Jedes Source-Ziel hat Passage, Source-Span und Quellenreferenz",
                    "passed": true,
                    "details": "Unvollständige Source-Ziele: -"
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "60 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median -21%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "mapping-2-complete",
                    "label": "MAPPING-2 abgeschlossen",
                    "passed": true,
                    "details": "60 Source-Ziele liegen vor; MAPPING-3 läuft gegen diese Source-Extraction-IDs."
                  },
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  },
                  {
                    "id": "m3-all-source-goals-reviewed",
                    "label": "Alle Source-Ziele haben eine fachliche M3-Entscheidung",
                    "passed": true,
                    "details": "60/60 Source-Ziele reviewed; offen: 0."
                  },
                  {
                    "id": "m3-all-source-goals-covered-by-canonical",
                    "label": "Alle Source-Ziele sind durch SkillPilot-Ziele abgedeckt",
                    "passed": true,
                    "details": "Fachlich abgedeckt: 60/60; Mappings: 60/60; verbleibend: 0 explizite Canonical-Gaps, 0 unreviewed."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "9c48c1bd-c476-5288-838a-058fb677cd52",
            "title": "Sozialkunde Sekundarstufe I - Wirtschaft (Rheinland-Pfalz, Lehrplan 2021 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/RP/lower-secondary/source-extraction/DE_RP_SOZIALKUNDE_SEKI_WIRTSCHAFT_2021.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-SOZIALKUNDE-SEK-I-2021",
                "title": "Lehrplan gesellschaftswissenschaftliche Faecher Sekundarstufe I Rheinland-Pfalz, Fachlehrplan Sozialkunde",
                "path": "curricula/DE/Gymnasium/input/RP/Ek_G_Sk_Sek_I_LP_2021.pdf",
                "url": "https://bildung.rlp.de/fileadmin/user_upload/demokratie.bildung.rlp.de/Downloads/Ek_G_Sk_Sek_I__LP_2021_.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 15,
            "passages": 2,
            "mappedSourceGoals": 15,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 15,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "RP Sek I buendelt Wirtschaft in einem kompakten Sozialkunde-Lernfeld II.1 plus Erweiterungen. Die Zielzahl ist niedriger als bei eigenstaendigen Wirtschaftsfaechern, aber alle wirtschaftlichen Pflicht- und Erweiterungsinhalte sind extrahiert."
            },
            "sourceGoalGranularity": {
              "averageWords": 9.933333333333334,
              "p90Words": 12,
              "maxWords": 14,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher RP-Sozialkunde-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Ek_G_Sk_Sek_I_LP_2021.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftliche RP-Lernfelder wurden als Passagen erfasst",
                    "passed": true,
                    "details": "2 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den RP-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "15 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "15 Source-Ziele; Vergleich HE/BW SEKI (43); Median 43; zulässiger 30%-Median-Korridor 31-55; Abweichung vom Median -65%. Kritisch gepruefte Abweichung: RP Sek I buendelt Wirtschaft in einem kompakten Sozialkunde-Lernfeld II.1 plus Erweiterungen. Die Zielzahl ist niedriger als bei eigenstaendigen Wirtschaftsfaechern, aber alle wirtschaftlichen Pflicht- und Erweiterungsinhalte sind extrahiert."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4555f665-7fb3-5fbe-8609-ed75c9299944",
            "title": "Sozialkunde Sekundarstufe II - Wirtschaftliche Transformation (Rheinland-Pfalz, Lehrplan 2022 Source-Extraction)",
            "jurisdiction": "DE-RP",
            "subject": "Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/RP/upper-secondary/source-extraction/DE_RP_SOZIALKUNDE_SEKII_WIRTSCHAFTLICHE_TRANSFORMATION_2022.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "RP-SOZIALKUNDE-SEK-II-2022",
                "title": "Lehrplan gesellschaftswissenschaftliche Faecher Sekundarstufe II Rheinland-Pfalz, Fachlehrplan Sozialkunde",
                "path": "curricula/DE/Gymnasium/input/RP/Gesellschaftswissenschaftliche_Faecher_SekII_2022.pdf",
                "url": "https://bildung.rlp.de/fileadmin/user_upload/studienseminar.rlp.de/gy-ko/Koblenz/Ausbildung/Geschichte/Links/Lehrplan_fuer_die_gesellschaftswissenschaftlichen_Faecher_Erdkunde_Geschichte_Sozialkunde_in_der_Sek._II__1_.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 46,
            "passages": 4,
            "mappedSourceGoals": 46,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 46,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "RP Sek II fuehrt Wirtschaft als Sozialkunde-Politikbereich Wirtschaftliche Transformation. Leistungsfach I.4/II.4/III.3 und das Grundfach-I.2-Profil wurden granularisiert; die niedrigere Zielzahl gegenueber eigenstaendigen Wirtschaftslehre-Curricula ist fachlich plausibel."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.76086956521739,
              "p90Words": 12,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher RP-Sozialkunde-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/RP/Gesellschaftswissenschaftliche_Faecher_SekII_2022.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftliche RP-Lernfelder wurden als Passagen erfasst",
                    "passed": true,
                    "details": "4 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den RP-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "46 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "46 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median -60%. Kritisch gepruefte Abweichung: RP Sek II fuehrt Wirtschaft als Sozialkunde-Politikbereich Wirtschaftliche Transformation. Leistungsfach I.4/II.4/III.3 und das Grundfach-I.2-Profil wurden granularisiert; die niedrigere Zielzahl gegenueber eigenstaendigen Wirtschaftslehre-Curricula ist fachlich plausibel."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "8e7b42cc-bb86-5c36-8c26-7f088a0de7c6",
            "title": "Wirtschaft/Politik Oberstufe (Schleswig-Holstein, Fachanforderungen 2016 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Wirtschaft/Politik",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SH/upper-secondary/source-extraction/DE_SH_WIRTSCHAFT_POLITIK_SEKII_FACHANFORDERUNGEN_2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-WIPO-SEK-I-II-2016",
                "title": "Fachanforderungen Wirtschaft/Politik Sekundarstufe I / Sekundarstufe II Schleswig-Holstein",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Wirtschaft_Politik_Sekundarstufe_2016_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_WiPo_SEK_barrierearm.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 78,
            "passages": 8,
            "mappedSourceGoals": 78,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 78,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SH Sek II bildet E3, Q1.1, wirtschaftliche EU-/Sozialstaatsbezüge, Globalisierung und Ökonomie/Ökologie ab. Die Zielzahl liegt im plausiblen Korridor der bereits geprüften Wirtschaft-Quellen."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.128205128205129,
              "p90Words": 9,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-WiPo-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Wirtschaft_Politik_Sekundarstufe_2016_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten SH-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "78 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "78 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -48%. Kritisch gepruefte Abweichung: SH Sek II bildet E3, Q1.1, wirtschaftliche EU-/Sozialstaatsbezüge, Globalisierung und Ökonomie/Ökologie ab. Die Zielzahl liegt im plausiblen Korridor der bereits geprüften Wirtschaft-Quellen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "95e81d28-1620-5fde-8fa5-d539c09e0503",
            "title": "Wirtschaft/Politik Sekundarstufe I (Schleswig-Holstein, Fachanforderungen 2016 Source-Extraction)",
            "jurisdiction": "DE-SH",
            "subject": "Wirtschaft/Politik",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SH/lower-secondary/source-extraction/DE_SH_WIRTSCHAFT_POLITIK_SEKI_FACHANFORDERUNGEN_2016.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SH-WIPO-SEK-I-II-2016",
                "title": "Fachanforderungen Wirtschaft/Politik Sekundarstufe I / Sekundarstufe II Schleswig-Holstein",
                "path": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Wirtschaft_Politik_Sekundarstufe_2016_barrierearm.pdf",
                "url": "https://fachportal.lernnetz.de/files/Fachanforderungen%20und%20Leitf%C3%A4den/Sek.%20I_II/Fachanforderungen_barrierefrei/Fachanforderungen_WiPo_SEK_barrierearm.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 3,
            "totalSteps": 3,
            "sourceGoals": 50,
            "passages": 4,
            "mappedSourceGoals": 50,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 50,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SH Sek I enthält kompakte, aber vollständige Inhaltslisten zu Konsum, Markt, Sozialer Marktwirtschaft sowie Arbeitswelt. Die Zielzahl ist wegen der rahmenhaften Fachanforderungen niedriger als NRW, aber oberhalb der 30%-Abweichungsschwelle gegen den Wirtschaft-Peer-Korridor geprüft."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.04,
              "p90Words": 8,
              "maxWords": 9,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtliche SH-WiPo-Quelle liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SH/Fachanforderungen_Wirtschaft_Politik_Sekundarstufe_2016_barrierearm.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten SH-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "50 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "50 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median -34%. Kritisch gepruefte Abweichung: SH Sek I enthält kompakte, aber vollständige Inhaltslisten zu Konsum, Markt, Sozialer Marktwirtschaft sowie Arbeitswelt. Die Zielzahl ist wegen der rahmenhaften Fachanforderungen niedriger als NRW, aber oberhalb der 30%-Abweichungsschwelle gegen den Wirtschaft-Peer-Korridor geprüft."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "4fc26764-7d00-5665-853b-012774b12f62",
            "title": "Sozialkunde 9 - Wirtschaft und Arbeitswelt (Saarland, Gymnasium Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SL/lower-secondary/source-extraction/DE_SL_SOZIALKUNDE_9_WIRTSCHAFT_UND_ARBEITSWELT_2012.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-SOZIALKUNDE-9-GYMNASIUM-2012",
                "title": "Lehrplan Sozialkunde Gymnasium Klassenstufe 9 Saarland, Unterrichtseinheit Wirtschaft und Arbeitswelt",
                "path": "https:/www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Sozialkunde/Sozialkunde_9_Gym_2012.pdf?__blob=publicationFile&v=4",
                "url": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Sozialkunde/Sozialkunde_9_Gym_2012.pdf?__blob=publicationFile&v=4",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 20,
            "passages": 3,
            "mappedSourceGoals": 20,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 20,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SL Gymnasium Sek I fuehrt Wirtschaft nicht als eigenes Pflichtfach, sondern im Sozialkunde-9-Thema Wirtschaft und Arbeitswelt. Die kompaktere Zielzahl ist fachlich plausibel und bildet die amtlich indexierten Kompetenzen der Einheit ab."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.65,
              "p90Words": 9,
              "maxWords": 10,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-url-present",
                    "label": "Amtliche Saarland-Quellen sind als offizielle URLs registriert",
                    "passed": true,
                    "details": "https://www.saarland.de/SharedDocs/Downloads/DE/mbk/Lehrpl%C3%A4ne/Lehrplaene_Gymnasium/Sozialkunde/Sozialkunde_9_Gym_2012.pdf?__blob=publicationFile&v=4"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftliche Saarland-Passagen wurden als Passagen erfasst",
                    "passed": true,
                    "details": "3 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Saarland-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "20 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "20 Source-Ziele; Vergleich HE/BW SEKI (43); Median 43; zulässiger 30%-Median-Korridor 31-55; Abweichung vom Median -53%. Kritisch gepruefte Abweichung: SL Gymnasium Sek I fuehrt Wirtschaft nicht als eigenes Pflichtfach, sondern im Sozialkunde-9-Thema Wirtschaft und Arbeitswelt. Die kompaktere Zielzahl ist fachlich plausibel und bildet die amtlich indexierten Kompetenzen der Einheit ab."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "7f0ddfa3-56c3-54b0-858d-16e98e2021b4",
            "title": "Wirtschaftslehre Gymnasiale Oberstufe (Saarland, GOS 2023 Source-Extraction)",
            "jurisdiction": "DE-SL",
            "subject": "Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SL/upper-secondary/source-extraction/DE_SL_WIRTSCHAFTSLEHRE_GOS_2023.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SL-WIRTSCHAFTSLEHRE-GOS-2023",
                "title": "Lehrplaene Wirtschaftslehre Gymnasiale Oberstufe Saarland 2023",
                "path": "https:/www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "url": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 35,
            "passages": 5,
            "mappedSourceGoals": 35,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 35,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SL GOS bietet Wirtschaftslehre als offizielles Oberstufenfach mit Einfuehrungsphase, Grundkurs und Leistungskurs. Die Zielzahl liegt im Korridor der direkten Wirtschaftslehre-/Wirtschaft-und-Recht-Quellen."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.257142857142857,
              "p90Words": 9,
              "maxWords": 10,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "official-source-url-present",
                    "label": "Amtliche Saarland-Quellen sind als offizielle URLs registriert",
                    "passed": true,
                    "details": "https://www.saarland.de/mbk/DE/portale/bildungsserver/unterricht-und-bildungsthemen/lehrplaenehandreichungen/lehrplaeneallgemeinbildende/gymnasiale-oberstufe-GOS/lehrplaene_GOS_node"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftliche Saarland-Passagen wurden als Passagen erfasst",
                    "passed": true,
                    "details": "5 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Saarland-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "35 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "35 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median -70%. Kritisch gepruefte Abweichung: SL GOS bietet Wirtschaftslehre als offizielles Oberstufenfach mit Einfuehrungsphase, Grundkurs und Leistungskurs. Die Zielzahl liegt im Korridor der direkten Wirtschaftslehre-/Wirtschaft-und-Recht-Quellen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "2284e68b-8924-522e-8f3f-63df04727f5a",
            "title": "GRW Sekundarstufe I - wirtschaftliche Inhaltsbereiche (Sachsen, Lehrplan Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Gemeinschaftskunde/Rechtserziehung/Wirtschaft",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/SN/lower-secondary/source-extraction/DE_SN_GRW_SEKI_WIRTSCHAFT_LEHRPLAN_GYMNASIUM_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-GRW-GYMNASIUM-LEHRPLAN-2024",
                "title": "Lehrplan Gymnasium Gemeinschaftskunde/Rechtserziehung/Wirtschaft Sachsen",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-grw-sachsen-2019.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/76/1IrLTgST5OTPa55GLt6b",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 63,
            "passages": 7,
            "mappedSourceGoals": 63,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 63,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SN Sek I hat die wirtschaftliche Schwerpunktsetzung in Klasse 8 und Klasse 10; politische und rechtliche GRW-Teile wurden nicht künstlich in Wirtschaft geroutet. Die Zielzahl liegt im Korridor geprüfter integrierter GRW/WiPo-Quellen."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.412698412698413,
              "p90Words": 10,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Sachsen-GRW-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-grw-sachsen-2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftliche GRW-Passagen wurden aus dem amtlichen Lehrplan extrahiert",
                    "passed": true,
                    "details": "7 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Sachsen-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "63 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "63 Source-Ziele; Vergleich HE/BW SEKI (81/71); Median 76; zulässiger 30%-Median-Korridor 54-98; Abweichung vom Median -17%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "e30c6b40-939e-5763-895f-fa3005080257",
            "title": "GRW Sekundarstufe II - wirtschaftliche Inhaltsbereiche (Sachsen, Lehrplan Source-Extraction)",
            "jurisdiction": "DE-SN",
            "subject": "Gemeinschaftskunde/Rechtserziehung/Wirtschaft",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/SN/upper-secondary/source-extraction/DE_SN_GRW_SEKII_WIRTSCHAFT_LEHRPLAN_GYMNASIUM_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "SN-GRW-GYMNASIUM-LEHRPLAN-2024",
                "title": "Lehrplan Gymnasium Gemeinschaftskunde/Rechtserziehung/Wirtschaft Sachsen",
                "path": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-grw-sachsen-2019.pdf",
                "url": "https://www.schulportal.sachsen.de/lplandb/lehrplan/file/76/1IrLTgST5OTPa55GLt6b",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 67,
            "passages": 10,
            "mappedSourceGoals": 67,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 67,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "SN Sek II konzentriert wirtschaftliche Inhalte vor allem in Jahrgangsstufe 12 sowie sozialstaatlich-arbeitsweltliche Bezüge in Jahrgangsstufe 11. Die Extraktion bleibt fachlich eng und vermeidet politische/rechtliche Übernahme ohne Wirtschaftskern."
            },
            "sourceGoalGranularity": {
              "averageWords": 8.253731343283581,
              "p90Words": 10,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Sachsen-GRW-Lehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/SN/lehrplan-gymnasium-grw-sachsen-2019.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftliche GRW-Passagen wurden aus dem amtlichen Lehrplan extrahiert",
                    "passed": true,
                    "details": "10 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Sachsen-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "67 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "67 Source-Ziele; Vergleich HE/BW SEKII (145/155); Median 150; zulässiger 30%-Median-Korridor 105-195; Abweichung vom Median -55%. Kritisch gepruefte Abweichung: SN Sek II konzentriert wirtschaftliche Inhalte vor allem in Jahrgangsstufe 12 sowie sozialstaatlich-arbeitsweltliche Bezüge in Jahrgangsstufe 11. Die Extraktion bleibt fachlich eng und vermeidet politische/rechtliche Übernahme ohne Wirtschaftskern."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "66cc9960-b598-5d52-8643-75051c4d1dc8",
            "title": "Wirtschaftslehre Qualifikationsphase (Sachsen-Anhalt, Fachlehrplan Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Wirtschaftslehre",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/ST/upper-secondary/source-extraction/DE_ST_WIRTSCHAFTSLEHRE_SEKII_FACHLEHRPLAN_GYMNASIUM_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-WIRTSCHAFTSLEHRE-GYMNASIUM-2024",
                "title": "Fachlehrplan Wirtschaftslehre Gymnasium Sachsen-Anhalt",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Wirtschaftslehre_Gymnasium_01082024.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/FLP_Wirtschaftslehre_010824_LTd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 94,
            "passages": 8,
            "mappedSourceGoals": 94,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 94,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "ST Sek II ist als Wirtschaftslehre-Qualifikationsphase vollständig wirtschaftsfachlich. Die Source-Ziele decken Kurs 1 bis 4 und die zugehörigen Fachpraktika ab."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.23404255319149,
              "p90Words": 10,
              "maxWords": 13,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Sachsen-Anhalt-Wirtschaftslehre-Fachlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Wirtschaftslehre_Gymnasium_01082024.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftslehre-Passagen wurden aus dem amtlichen Fachlehrplan extrahiert",
                    "passed": true,
                    "details": "8 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Sachsen-Anhalt-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "94 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "94 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median -19%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f56fe2d6-611b-572d-8866-a0b0644b3205",
            "title": "Wirtschaftslehre Sekundarstufe I (Sachsen-Anhalt, Fachlehrplan Source-Extraction)",
            "jurisdiction": "DE-ST",
            "subject": "Wirtschaftslehre",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/ST/lower-secondary/source-extraction/DE_ST_WIRTSCHAFTSLEHRE_SEKI_FACHLEHRPLAN_GYMNASIUM_2024.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "ST-WIRTSCHAFTSLEHRE-GYMNASIUM-2024",
                "title": "Fachlehrplan Wirtschaftslehre Gymnasium Sachsen-Anhalt",
                "path": "curricula/DE/Gymnasium/input/ST/FLP_Wirtschaftslehre_Gymnasium_01082024.pdf",
                "url": "https://lisa.sachsen-anhalt.de/fileadmin/Bibliothek/Politik_und_Verwaltung/MK/LISA/Unterricht/Lehrplaene/Gym/FLP_Wirtschaftslehre_010824_LTd.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 113,
            "passages": 11,
            "mappedSourceGoals": 113,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 113,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "ST Sek I stammt aus einem eigenen Fachlehrplan Wirtschaftslehre und umfasst die Kompetenzschwerpunkte der Schuljahrgänge 9 und 10. Die höhere Zielzahl ist gegenüber integrierten GRW/WiPo-Quellen fachlich erwartbar."
            },
            "sourceGoalGranularity": {
              "averageWords": 7.168141592920354,
              "p90Words": 10,
              "maxWords": 15,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Sachsen-Anhalt-Wirtschaftslehre-Fachlehrplan liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/ST/FLP_Wirtschaftslehre_Gymnasium_01082024.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaftslehre-Passagen wurden aus dem amtlichen Fachlehrplan extrahiert",
                    "passed": true,
                    "details": "11 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den ausgewählten Sachsen-Anhalt-Passagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "113 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "113 Source-Ziele; Vergleich HE/BW SEKI (43); Median 43; zulässiger 30%-Median-Korridor 31-55; Abweichung vom Median 163%. Kritisch gepruefte Abweichung: ST Sek I stammt aus einem eigenen Fachlehrplan Wirtschaftslehre und umfasst die Kompetenzschwerpunkte der Schuljahrgänge 9 und 10. Die höhere Zielzahl ist gegenüber integrierten GRW/WiPo-Quellen fachlich erwartbar."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "083da5c1-82ad-5c98-8c08-2c5d8f5b2e2c",
            "title": "Wirtschaft und Recht Qualifikationsphase (Thueringen, Lehrplan 2012 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Wirtschaft und Recht",
            "stage": "SekII",
            "path": "curricula/DE/Gymnasium/input/TH/upper-secondary/source-extraction/DE_TH_WIRTSCHAFT_RECHT_SEKII_LEHRPLAN_GYMNASIUM_2012.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-WIRTSCHAFT-RECHT-GYMNASIUM-2012",
                "title": "Lehrplan Wirtschaft und Recht Gymnasium Thueringen 2012",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Wirtschaft_und_Recht_2012.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/15754?dateiname=LP_GY_WR_Endfassung_290713_1.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 145,
            "passages": 14,
            "mappedSourceGoals": 145,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 145,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "TH Sek II bildet Volkswirtschaftslehre, Betriebswirtschaftslehre und wirtschaftsbezogene Rechtsbereiche ab. Die Gesamtzahl ist nahe bei BY/ST und damit fuer ein direktes Wirtschaft-und-Recht-Fach plausibel."
            },
            "sourceGoalGranularity": {
              "averageWords": 6,
              "p90Words": 9,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Thueringer Lehrplan Wirtschaft und Recht liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Wirtschaft_und_Recht_2012.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaft-und-Recht-Passagen wurden aus dem amtlichen Lehrplan extrahiert",
                    "passed": true,
                    "details": "14 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Thueringer Lehrplanpassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "145 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "145 Source-Ziele; Vergleich HE/BW SEKII (58/173); Median 116; zulässiger 30%-Median-Korridor 81-150; Abweichung vom Median 26%."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          },
          {
            "sourceLandscapeId": "f91762fa-55a6-558b-8639-5045623acefc",
            "title": "Wirtschaft und Recht Sekundarstufe I (Thueringen, Lehrplan 2012 Source-Extraction)",
            "jurisdiction": "DE-TH",
            "subject": "Wirtschaft und Recht",
            "stage": "SekI",
            "path": "curricula/DE/Gymnasium/input/TH/lower-secondary/source-extraction/DE_TH_WIRTSCHAFT_RECHT_SEKI_LEHRPLAN_GYMNASIUM_2012.source-extraction.json",
            "sourceKind": "source-extraction",
            "sourceDocuments": [
              {
                "key": "TH-WIRTSCHAFT-RECHT-GYMNASIUM-2012",
                "title": "Lehrplan Wirtschaft und Recht Gymnasium Thueringen 2012",
                "path": "curricula/DE/Gymnasium/input/TH/LP_GY_Wirtschaft_und_Recht_2012.pdf",
                "url": "https://www.schulportal-thueringen.de/tip/resources/medien/15754?dateiname=LP_GY_WR_Endfassung_290713_1.pdf",
                "official": true,
                "available": false,
                "hasUsableUrl": true
              }
            ],
            "currentStep": "",
            "completedSteps": 4,
            "totalSteps": 4,
            "sourceGoals": 73,
            "passages": 4,
            "mappedSourceGoals": 73,
            "unmappedSourceGoals": 0,
            "extraMappedGoals": 0,
            "exactMappings": 0,
            "partialMappings": 73,
            "otherMappings": 0,
            "sourceGoalCountPeerBaselineReview": {
              "accepted": true,
              "details": "TH Sek I nutzt ein eigenes Fach Wirtschaft und Recht in Klassenstufe 10. Die Source-Zielzahl liegt im Korridor vergleichbarer direkter Wirtschaft-/Wirtschaft-und-Recht-Quellen."
            },
            "sourceGoalGranularity": {
              "averageWords": 6.972602739726027,
              "p90Words": 10,
              "maxWords": 12,
              "longGoals": 0,
              "longGoalThreshold": 45,
              "examples": []
            },
            "steps": [
              {
                "id": "ORIGINALQUELLEN",
                "label": "Originalquellen bereitgestellt",
                "status": "complete",
                "dependsOn": [],
                "checks": [
                  {
                    "id": "source-document-present",
                    "label": "Amtlicher Thueringer Lehrplan Wirtschaft und Recht liegt lokal vor",
                    "passed": true,
                    "details": "curricula/DE/Gymnasium/input/TH/LP_GY_Wirtschaft_und_Recht_2012.pdf"
                  }
                ]
              },
              {
                "id": "MAPPING-1",
                "label": "Original-Lehrplanpassagen extrahiert",
                "status": "complete",
                "dependsOn": [
                  "ORIGINALQUELLEN"
                ],
                "checks": [
                  {
                    "id": "passages-extracted",
                    "label": "Wirtschaft-und-Recht-Passagen wurden aus dem amtlichen Lehrplan extrahiert",
                    "passed": true,
                    "details": "4 Passagen."
                  }
                ]
              },
              {
                "id": "MAPPING-2",
                "label": "Source-Ziele aus Lehrplanpassagen erstellt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1"
                ],
                "checks": [
                  {
                    "id": "source-goals-created",
                    "label": "Aus den Thueringer Lehrplanpassagen wurden Source-Ziele erzeugt",
                    "passed": true,
                    "details": "73 Source-Ziele."
                  },
                  {
                    "id": "source-goal-count-peer-baseline",
                    "label": "Source-Ziel-Anzahl ist gegen den geprüften HE/BW-Median plausibilisiert",
                    "passed": true,
                    "details": "73 Source-Ziele; Vergleich HE/BW SEKI (43); Median 43; zulässiger 30%-Median-Korridor 31-55; Abweichung vom Median 70%. Kritisch gepruefte Abweichung: TH Sek I nutzt ein eigenes Fach Wirtschaft und Recht in Klassenstufe 10. Die Source-Zielzahl liegt im Korridor vergleichbarer direkter Wirtschaft-/Wirtschaft-und-Recht-Quellen."
                  }
                ]
              },
              {
                "id": "MAPPING-3",
                "label": "Source-Ziele auf SkillPilot-Ziele gemappt",
                "status": "complete",
                "dependsOn": [
                  "MAPPING-1",
                  "MAPPING-2"
                ],
                "checks": [
                  {
                    "id": "m3-review-file-present",
                    "label": "M3-Review-Datei ist vorhanden",
                    "passed": true,
                    "details": "Review-Datei mit sourceExtractionPath fuer diese Source-Extraction ist vorhanden."
                  }
                ]
              }
            ]
          }
        ]
      },
      "scopes": [
        {
          "scopeId": "canonical-economics-crossstage",
          "label": "Sekundarstufe I/II",
          "selectedAtomicGoals": 303,
          "maturity": "M3",
          "rules": [
            {
              "id": "CQR-101",
              "status": "pass",
              "summary": "Effective route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 303,
                "missingMotivationPath": 0,
                "missingTerminalPath": 0
              }
            },
            {
              "id": "CQR-102",
              "status": "pass",
              "summary": "Direct atomic route coverage is complete for the configured scope.",
              "metrics": {
                "selectedAtomicGoals": 303,
                "missingDirectMotivationPath": 0,
                "missingDirectTerminalPath": 0
              }
            },
            {
              "id": "CQR-103",
              "status": "pass",
              "summary": "No scoped cluster-level requires remain.",
              "metrics": {
                "scopedClusterRequires": 0
              }
            },
            {
              "id": "CQR-104",
              "status": "pass",
              "summary": "Route endpoints are visible in all relevant composition views.",
              "metrics": {
                "relevantCompositionViews": 2,
                "requiredMotivationAnchors": 1,
                "requiredTerminalAutonomyGoals": 18,
                "viewsMissingMotivationAnchors": 0,
                "viewsMissingTerminalAutonomyGoals": 0
              }
            },
            {
              "id": "CQR-201",
              "status": "pass",
              "summary": "All configured terminal autonomy goals have examData.",
              "metrics": {
                "terminalAutonomyGoals": 18,
                "terminalAutonomyGoalsWithExamData": 18,
                "terminalAutonomyGoalsWithoutExamData": 0
              }
            }
          ]
        }
      ],
      "rules": [
        {
          "id": "CQR-001",
          "status": "pass",
          "summary": "Basic graph integrity checks pass.",
          "metrics": {
            "goals": 370,
            "localReferenceIssues": 0
          }
        },
        {
          "id": "CQR-002",
          "status": "pass",
          "summary": "Explicit type metadata matches graph structure.",
          "metrics": {
            "mismatches": 0
          }
        },
        {
          "id": "CQR-000",
          "status": "pass",
          "summary": "All 16 declared Bundesland source inventories are readable, linked to official source URLs, and fully registered.",
          "metrics": {
            "totalJurisdictions": 16,
            "completeSourceJurisdictions": 16,
            "emptySourceJurisdictions": 0,
            "missingReadableSourceInventoryJurisdictions": 0,
            "originalSourceUrlIssues": 0,
            "sourceExtractedGoals": 2109,
            "sourceOriginalGoals": 2109,
            "sourceUnregisteredGoals": 0,
            "sourceExtractedAtomicGoals": 2109,
            "sourceUnregisteredAtomicGoals": 0
          }
        },
        {
          "id": "CQR-003",
          "status": "pass",
          "summary": "All 16 declared Bundesland projection(s) have source-backed atom-level view coverage, no unsupported assignments, and complete source-to-view mapping.",
          "metrics": {
            "totalJurisdictions": 16,
            "coveredJurisdictions": 16,
            "sourceBackedJurisdictions": 16,
            "sourceCompleteJurisdictions": 16,
            "fullCoverageJurisdictions": 16,
            "uncoveredJurisdictions": 0,
            "incompleteJurisdictions": 0,
            "unsupportedAssignmentJurisdictions": 0,
            "sourceUnmappedJurisdictions": 0,
            "unsupportedAssignedAtomicGoals": 0,
            "unmappedSourceAtomicGoals": 0,
            "sourceAtomicGoals": 2109,
            "sourceMappedToViewAtomicGoals": 2109,
            "sourceOriginalGoals": 2109,
            "sourceFullyCoveredOriginalGoals": 2109,
            "sourcePartiallyCoveredOriginalGoals": 0,
            "sourceUncoveredOriginalGoals": 0,
            "surrogateBackedAtomicGoals": 109,
            "partialSourceLinkedAtomicGoals": 0,
            "warningedJurisdictions": 0,
            "cleanJurisdictions": 16,
            "partialJurisdictions": 0,
            "errorJurisdictions": 0,
            "minSourceBackedAtomicGoals": 63,
            "maxVisibleAtomicGoals": 272,
            "maxSourceBackedAtomicGoals": 272,
            "totalAtomicGoals": 274
          }
        },
        {
          "id": "CQR-004",
          "status": "pass",
          "summary": "Course-level mapping is clean for 352 upper-secondary source-to-canonical mapping edge(s), including 0 reviewed course-level exception(s); unspecified upper-secondary source goals default to GK/LK unless explicitly reviewed.",
          "metrics": {
            "configuredMappingFiles": 30,
            "sourceGoals": 1359,
            "sourceGoalsWithCourseLevel": 1359,
            "gkLkSourceGoals": 763,
            "lkSourceGoals": 441,
            "unspecifiedSourceGoals": 117,
            "checkedMappingEdges": 352,
            "defaultedUnspecifiedMappingEdges": 107,
            "reviewedCourseLevelExceptions": 0,
            "mismatches": 0,
            "missingSourceGoals": 0,
            "missingTargetGoals": 0,
            "unmappedCourseLevelSourceGoals": 0
          }
        },
        {
          "id": "CQR-005",
          "status": "pass",
          "summary": "Source-goal counts are inside the configured peer-baseline corridor or explicitly reviewed.",
          "metrics": {
            "sourceExtractionSources": 30,
            "peerBaselineChecks": 27,
            "failedPeerBaselineChecks": 0,
            "granularityChecks": 0,
            "failedGranularityChecks": 0
          }
        },
        {
          "id": "CQR-301",
          "status": "pass",
          "summary": "Semantic atomicity review ledgers are current and fully accepted.",
          "metrics": {
            "configs": 1,
            "leafGoals": 303,
            "atomic": 303,
            "needsDeveloperReview": 0,
            "nonAtomic": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0
          }
        },
        {
          "id": "CQR-302",
          "status": "pass",
          "summary": "Memory-card review is current: 53/303 ordinary atomic goals intentionally use memorization support, 51/51 primary cards are kept with origin traces, all 5 memory goals are traced, and 98 view-visible memory-required goals resolve to visible memory nodes.",
          "metrics": {
            "configs": 1,
            "reviewedGoals": 303,
            "noMemoryNeeded": 250,
            "memoryRequired": 53,
            "needsDeveloperReview": 0,
            "missing": 0,
            "stale": 0,
            "obsolete": 0,
            "duplicateRecords": 0,
            "invalidRecords": 0,
            "primaryCards": 51,
            "keptCards": 51,
            "cardsMarkedRemove": 0,
            "cardNeedsDeveloperReview": 0,
            "missingCardReviews": 0,
            "staleCardReviews": 0,
            "obsoleteCardReviews": 0,
            "duplicateCardReviewRecords": 0,
            "invalidCardReviewRecords": 0,
            "untracedMemoryRequiredGoals": 0,
            "visibilityScopes": 2,
            "visibilityCheckedMemoryRequiredGoals": 98,
            "visibilityMissingVisibleMemoryGoals": 0,
            "visibilityErrors": 0,
            "memoryGoals": 5,
            "tracedMemoryGoals": 5,
            "untracedMemoryGoals": 0,
            "deckIds": 5,
            "deckFiles": 5,
            "cardRows": 51
          },
          "details": [
            "canonical-economics-full: audit report docs/qa-ci/status/memory-card-review-canonical-economics-full.md"
          ]
        },
        {
          "id": "CQR-401",
          "status": "pass",
          "summary": "3 composition view(s) are registered.",
          "metrics": {
            "compositionViews": 3
          }
        },
        {
          "id": "CQR-501",
          "status": "pass",
          "summary": "No active applicability warning debt is visible.",
          "metrics": {
            "activeWarnings": 0,
            "rawActiveWarnings": 0,
            "diagnosticPartialOnlyWarnings": 1469,
            "acceptedWarnings": 0,
            "obsoleteAcceptedWarnings": 0
          },
          "details": [
            "non-blocking partial-only applicability diagnostics APV-202: 1469",
            "diagnostic finding type APV-202: 1469"
          ]
        }
      ]
    }
  ]
}
