Skip to content

OpenAI review retirement and historical freeze record

Current status — 9 September 2026: OpenAI rejected 1.0.0. The Product Owner has explicitly lifted all ChatGPT/OpenAI review development freezes and authorized current plugin, submission and test development toward 1.1.0. The raw portal export was inspected for status: REJECTED and version: 1.0.0; only its digest and a non-secret summary are recorded. It is not committed because it contains account/reviewer metadata.

The former freeze record is preserved byte-for-byte at contracts/openai/skillpilot-coach-v1/review-history/1.0.0-rejected/review-freeze.json. The active record uses schema 2 and developmentFreezeActive: false. The checker validates this explicit retirement, the archived record, the rejected snapshot and historical content-addressed review video. It does not compare current source, runtime, UI, tests or documentation with the old hashes. The old chain resolvers are retained for historical auditing, not enforcement.

Local successor preparation is permitted. Rejected 1.0.0 and actually published versions cannot be overwritten. Publication, deployment, resubmission and account changes remain separate actions requiring their own authorization and evidence; record-published remains blocked. Release reproducibility, retained resource continuity, security/privacy/state tests and independently published Claude artifacts/acceptance gates remain effective.

Everything below is historical documentation of the retired review, including its former STOP instructions and sections 6.1–6.72. None of those review-time live-file freezes or exception procedures remains an active development stop. See the current release runbook.


SkillPilot Coach v1.0.0: aktive OpenAI-Review-Sperre

Stand: 31. August 2026

Portalstatus: Review

Öffentlicher Status: noch nicht genehmigt und noch nicht veröffentlicht

Sperrstatus: aktiv

1. Verbindliche Entscheidung

Der am 15. August 2026 eingereichte Stand von skillpilot-coach-v1 Version 1.0.0 ist für die gesamte Dauer des OpenAI-Reviews eingefroren. Das betrifft nicht nur das hochgeladene Paket, sondern jeden beobachtbaren Vertrag, gegen den OpenAI scannt oder die fünf positiven und drei negativen Reviewfälle ausführt.

Der Product Owner hat am 17. August 2026 klargestellt, dass die öffentliche fachliche Curriculum-Schicht (Layer A) ein getrennt fortschreibbarer Inhaltsbestand ist. Ihre exakten Curriculum-, Lernziel-, Assessment- und curricularen Visualisierungsbytes gehören weder zum Pluginvertrag noch zur Plugin-SemVer. Diese Klarstellung ändert weder skillpilot-coach-v1 Version 1.0.0 noch den laufenden Portalreview und erfordert kein Zurückziehen oder erneutes Einreichen.

publicationStatus: DRAFT bleibt dabei korrekt: Die Version ist im Portal eingereicht, aber noch nicht veröffentlicht. DRAFT bedeutet während des Reviews nicht veränderlich. Der separate Review-Freeze schließt genau diese Lücke zwischen Einreichung und tatsächlicher Veröffentlichung.

Maschinenlesbarer Status und Hashanker:

  • contracts/openai/skillpilot-coach-v1/review-freeze.json
  • eingereichter Quellstand: ff3a16b0d6e3c8a564176ab4743e777cddf3e79c
  • interner Snapshot: contracts/drafts/openai/skillpilot-coach-v1/1.0.0-SNAPSHOT/
  • Snapshot-Manifest SHA-256: e6408e7054d53ab4a52f32f541b07201f1a8f6e183ff5772bc2d8164162b0f32
  • exportierter Contract-Fingerprint: d2f08a66efa3488e5f87758de41688a18ce47ba2951bb2d3147e522d1fd30b38
  • Plugin-Bundle SHA-256: f6f69b7b42b6904ad6ff1796190cf687af72c2e4af62edcac0bd04d6603ae697
  • Reviewvideo SHA-256: 20f5327535513df8b1c088b553195baf6ae339d57fc417b303488ae597644deb

Die im eingereichten Paket enthaltenen Release Notes nennen den Stand noch einen fortschreibbaren unveröffentlichten Draft. Diese Formulierung entstand vor der Einreichung und bleibt absichtlich byte-identisch im eingereichten Paket. Für die operative Arbeit wird sie seit dem 15. August 2026 durch diese Review-Sperre überstimmt.

2. Eingefrorener Wirkungsbereich

Die Sperre ist wirkungsbezogen. Ein Dateipfad außerhalb der unten genannten Beispiele macht eine Änderung nicht automatisch sicher. Eingefroren sind insbesondere:

  • Paketidentität, Version, Listing, Icons, Skill, Coaching Policy und die eingereichten Release Notes;
  • Namen, Beschreibungen, Ein- und Ausgabeschemas, Annotationen, Security Schemes, Ressourcenbindungen, Server Instructions und Fehlersemantik aller zwölf V1-Werkzeuge;
  • aktive und beibehaltene MCP-Apps-Ressourcen einschließlich Bytes, Hash-URIs, CSP, Domain und Toolbindung;
  • MCP-Endpoint, OAuth-Issuer und -Discovery, feste Clientregistrierung, Callback, Scopes, PKCE, mTLS-Edge, Domain-Challenge und Fail-closed-Routen;
  • 24-Stunden-Lernsession, Identitäts-, Locale-, Zustands-, Mastery-, Navigation-, Memory-, Recall- und Prüfungssemantik;
  • der ChatGPT-spezifische First-Party-Ablauf WebGUI-Konfiguration → Lernen starten → frische vorbereitete Chatnachricht sowie seine sichtbaren Texte und URLs;
  • Portalwerte: Beschreibungen und Übersetzungen, Starter Prompt, Länderfreigabe, Tool-Begründungen, exakt fünf positive und drei negative Testfälle, Testzugang, Attestierungen und Domain-Verifikation;
  • die Ablauf-, Zugangs- und Assertion-Verträge der Reviewfälle sowie Reviewzugänge, Wegwerf-Fixtures und deren Setup- und Zustandssemantik;
  • Rechtstexte und Datenschutzaussagen, auf die Listing und Review verweisen;
  • Reviewvideo, SHA-256 und die einzige Portal-URL https://skillpilot.com/api/public/openai/review/skillpilot-coach-v1/1.0.0/sha256-20f5327535513df8b1c088b553195baf6ae339d57fc417b303488ae597644deb.mp4;
  • Abhängigkeiten, Runtime- oder Deploymentänderungen, wenn sie einen dieser Punkte beobachtbar verändern könnten.

Nicht vom Byte-Freeze erfasst ist die fortschreibbare öffentliche Layer-A- Schicht. Dazu gehören insbesondere die exakten Bytes, Hashes, IDs, Kanten und Anzahlen der Curricula, Lernziele, fachlichen Assessments und curricularen Visualisierungen. Reviewfälle dürfen diese fachlichen Daten über die unveränderten V1-Schnittstellen live lesen; sie müssen deshalb nicht auf beliebige am 15. August vorhandene Zielbytes oder Zielanzahlen festgeschrieben werden. Eingefroren bleiben ihr Ablauf, ihr Zugang und ihre Assertion-Verträge sowie alle Plugin-, MCP-, OAuth-, Tool-, Schema-, MCP-Apps-UI-, Session- und Zustandsverträge. Insbesondere sind curriculare Bildbytes Layer A, die Bytes und Bindungen des MCP-Apps-Widgets dagegen Teil des eingefrorenen UI-Vertrags; Assessment-Inhalte sind Layer A, Prüfungsworkflow und Zustandssemantik dagegen Teil des eingefrorenen Runtime-Vertrags.

3. Ohne ausdrückliche Freigabe verboten

  • node scripts/openai_plugin_release.mjs prepare oder record-published ausführen;
  • Package, Skill, MCP-Metadaten oder Tools neu scannen oder hochladen;
  • Portalwerte speichern, Testfälle oder Credentials austauschen oder Attestierungen ändern;
  • Draft-Snapshot, UI-Artefakte, Reviewvideo oder deren Hashanker ersetzen;
  • Produktionsverhalten „nur intern“ korrigieren, wenn der eingefrorene Ablauf eines Reviewfalls oder der öffentliche V1-Vertrag betroffen sein kann;
  • nach Approval, Rejection oder Withdrawal eigenmächtig weiterarbeiten.

Der Release-Befehl verweigert prepare und record-published bei aktiver Sperre. CI und Deployment prüfen zusätzlich die Hashanker und die gepinnten V1-Quellbäume.

4. Weiterhin erlaubt

  • rein lesende Audits, Tests, Health-/Security-Smokes und Monitoring;
  • Störungsanalyse ohne Mutation;
  • reine Dokumentationskorrekturen, die den eingefrorenen Stand exakt beschreiben und keine Portalwerte, Vertragsbehauptungen oder Artefakte verändern;
  • fachliche Fortschreibung der öffentlichen Layer-A-Curricula einschließlich Lernzielen, Assessments und curricularen Visualisierungen, sofern ihre eigenen Quellen-, Review- und Qualitätsregeln eingehalten werden und kein eingefrorener V1-Vertrag verändert wird;
  • unabhängige Arbeiten, deren fehlender V1-Effekt konkret belegt ist und bei denen alle Freeze-, Candidate- und Runtime-Gates grün bleiben.

Quickstart-Texte, Screenshots und reine Story-Darstellung dürfen aktualisiert werden. Sie dürfen aber nur den eingefrorenen Ablauf dokumentieren. Änderungen an SessionSetup, Coach-Launch, Plugin-Namen, Browsergrenze, Sessiondauer, Datenschutzversprechen oder Providerverhalten sind keine Quickstart-Arbeit und bleiben ohne eine exakte, hashgebundene Product-Owner-Ausnahme gesperrt. Die in den Abschnitten 6.3 und 6.4 dokumentierte additive Auswahl und geführte Einrichtung eines unabhängigen Claude-v1-Coaches gibt keinen Bestandteil des eingereichten ChatGPT-V1-Vertrags frei.

5. Pflichtprüfung vor Änderung und Deployment

node scripts/check_openai_plugin_review_freeze.mjs
node scripts/openai_plugin_release.mjs verify
node scripts/check_skillpilot_coach_plugin.mjs
node scripts/check_openai_plugin_versioning.mjs

verify vergleicht die aktuellen Quellen reproduzierbar mit dem eingereichten Draft. Der Freeze-Check pinnt zusätzlich Snapshot, Bundle, Contract, Video und kritische Runtime-/Start-/Edge-Bäume. Ein grüner Pfadfilter ersetzt dennoch nicht die Wirkungsprüfung. Umgekehrt ist ein fachlicher Layer-A-Diff allein kein Plugin-SemVer- oder Review-Freeze-Verstoß; er bleibt durch die fachlichen Curriculum-Gates zu prüfen.

6. Ausnahmen und Ende der Sperre

Eine Ausnahme im eingefrorenen Wirkungsbereich benötigt vor jeder Änderung eine ausdrückliche Entscheidung des Product Owners mit:

  1. Grund der Änderung;
  2. exakt freigegebenem Wirkungs- und Dateiumfang;
  3. Zielversion;
  4. Entscheidung, ob das Portal-Review zurückgezogen beziehungsweise neu eingereicht werden muss;
  5. neuer, nach vollständiger Prüfung erneut gesetzter Freeze-Baseline.

Die in Abschnitt 4 beschriebene fachliche Layer-A-Fortschreibung ist keine solche Ausnahme. Solange sie keinen eingefrorenen V1-Vertrag verändert, benötigt sie weder eine neue Plugin-SemVer noch ein Zurückziehen oder erneutes Einreichen des Portalreviews.

6.1 Eng begrenzte Ausnahme: öffentliche Lernzielbuch-Bewerbung aus

Der Product Owner hat am 15. August 2026 entschieden, das noch unvollständige Lernzielbuch vorerst ausschließlich über die lokale Workbench auffindbar zu machen. Dafür ist genau folgende Ausnahme freigegeben:

  • Auf der öffentlichen Startseite bleibt PUBLIC_GOAL_BOOK_PROMOTION_ENABLED ausgeschaltet.
  • Der öffentliche Sitemap-Eintrag /lernzielbuch entfällt.
  • Die Read-only-Route, ihre Artefakte sowie die deutschen und englischen Workbench-Einstiege bleiben erhalten. Dadurch kann die Bewerbung später nach einer neuen ausdrücklichen Produktentscheidung wieder aktiviert werden.
  • Ziel ist ausschließlich das aktuelle Produktions-Webfrontend. Das eingereichte Plugin bleibt skillpilot-coach-v1 Version 1.0.0.
  • Ein Zurückziehen oder erneutes Einreichen im OpenAI-Portal ist nicht nötig: Paket, Skill, First-Party-Startablauf, MCP/OAuth-Vertrag, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert.

Der ursprüngliche SHA-256 von SessionSetup.tsx bleibt als eingereichte Baseline erhalten. Der freigegebene neue SHA-256 sowie der Sitemap-Hash sind zusätzlich in review-freeze.json hinterlegt und werden vom Freeze-Checker gegen eine fest codierte Ausnahmeliste geprüft. Andere Änderungen an diesen Dateien bleiben fail-closed gesperrt.

6.2 Historische zweite Ausnahme: Claude-Webstart ohne manuellen Fallback

Der Product Owner hat am 23. August 2026 für das aktuelle Produktions-Webfrontend eine zweite, ausschließlich Claude-spezifische Runtime-Ausnahme freigegeben. Sie galt damals nur für den versteckt providerselektierten Claude-Zweig; der normale Root-Aufruf aktivierte ihn noch nicht. Diese historische Abgrenzung bleibt Teil der Hashkette, wurde aber am 24. August 2026 durch die ausdrückliche Entscheidung in Abschnitt 6.3 ersetzt.

Freigegeben ist ausschließlich:

  • das beim Klick synchron geöffnete Claude-Fenster nur mit der validierten, q-vorausgefüllten Claude-Web-URL weiterzuleiten;
  • bei blockiertem Popup oder ungültiger URL fail-closed abzubrechen;
  • die redundante Clipboard-Kopie sowie den rohen Startprompt, Copy-, Web- und Desktop-Fallback aus dem Claude-Zweig zu entfernen;
  • den fokussierten Regressionstest für genau diese Abgrenzung zu aktualisieren.

Nicht freigegeben sind Änderungen am Root-/ChatGPT-Default, am OpenAI-Paket, MCP/OAuth, an Tools, Schemas, Reviewfällen, Portalwerten, Fixtures oder Reviewartefakten. Der Product Owner hat deshalb entschieden, dass der laufende OpenAI-Portalreview weder zurückgezogen noch neu eingereicht wird: Der eingereichte OpenAI-Vertrag und sein beobachtbarer Reviewablauf bleiben unverändert.

Die Hashhistorie von SessionSetup.tsx bleibt ausdrücklich eine Kette und wird nicht überschrieben:

  1. eingereicht: 081a467439a7506d2334003912d7bc8784991d9b95cfd0783196bff3ec8aa506;
  2. erste autorisierte Goalbook-Ausnahme: 3834b8c813719e21dffb767b9e5fe60890845769e188b49a239da57f4577b9a4;
  3. zweite autorisierte Claude-only-Ausnahme: fbab3a4833b534059a8b9ad2c97a293cb670d848d92bd93caac25ed9d96787ad.

Als zusätzliche Evidenz ist contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-23-testClaudeV1StartUi.tsx als unveränderlicher historischer Snapshot mit SHA-256 f02ab916f7e501cb7b50eee477c5237c054caf36f90bee1c5cf1da075a82e8bf gepinnt. Der Freeze-Checker validiert sowohl die lückenlose Reihenfolge der Ausnahmen als auch ausschließlich den letzten autorisierten Runtime-Hash.

6.3 Eng begrenzte Ausnahme: gemeinsame Standardauswahl ChatGPT oder Claude

Der Product Owner hat am 24. August 2026 entschieden, dass SkillPilot genau einen normalen Webstart verwendet und die lernende Person dort bei jedem Start sichtbar zwischen ChatGPT und dem unabhängig isolierten Claude-v1-Connector wählt. Ein versteckter Providerparameter ist nicht mehr Teil des Produktwegs.

Freigegeben ist ausschließlich:

  • auf dem normalen Root-Aufruf in Schritt 4 die getrennt beschrifteten ChatGPT- und Claude-v1-Optionen gleichzeitig anzuzeigen;
  • den früheren versteckten Claude-Query-Gate aus dem Webadapter zu entfernen;
  • den ChatGPT-only-Kontohinweis der öffentlichen Startseite durch die korrekte Aussage „SkillPilot ist kostenlos“ plus einen Link auf die lernendenseitige Vergleichsmatrix /faq/coach-setup zu ersetzen;
  • die bereits vorhandenen Claude-v1-Setup- und Webstart-Handler aus dieser sichtbaren Auswahl aufzurufen.

Unverändert und weiterhin eingefroren bleiben insbesondere der ChatGPT- Startbutton und sein Handler, die vorbereitete ChatGPT-Nachricht, die 24-Stunden-Sessionsemantik, das OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte. Daher ist weder ein Zurückziehen noch ein erneutes Einreichen des laufenden OpenAI-Portalreviews erforderlich.

Die Hashkette von SessionSetup.tsx wird fortgesetzt, nicht neu begonnen:

  1. gemeinsame Standardauswahl: 1919c46dfe9e1f70ecdf177f2dd48654400c9eb8debd47ddaf0576d9e4fdd61f.

Die Regressionsevidenz wurde vor der nächsten autorisierten Änderung als contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-24-testClaudeV1StartUi.tsx archiviert und ist mit 60ac516f664da7a61c7ce2a53ad2736adc7ae7d67fb10391c549b073b331a5e4 gepinnt. Sie belegt die sichtbare Standardauswahl, die Abwesenheit eines versteckten Query-Gates, den providerneutralen Startseitenhinweis samt Vergleichslink und die getrennten Providerhandler. Zusätzlich ist der damalige Claude-Webadapter als contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-24-claudeCoach.ts mit fc451b8780889e45fe7a848353e1415d52d4eb1b6a7f8ed35b266a4dd5d512f0 gepinnt.

6.4 Eng begrenzte Ausnahme: geführte Claude-Pro-Plugin-Einrichtung

Der Product Owner hat am 25. August 2026 nach dem realen Rollout entschieden, den veralteten lernendenseitigen manuellen Connector-Schritt durch den geführten, direkt installierten Claude-Pro-Betaweg zu ersetzen. Das bisherige Browser-Flag belegte lediglich, dass die Connector-Seite einmal geöffnet worden war; es konnte weder eine Plugin-Installation noch einen geräteübergreifenden Zustand zuverlässig erkennen.

Freigegeben ist ausschließlich:

  • im getrennt gebrandeten Claude-v1-Bereich Schritt 1 auf die SkillPilot-eigene Installationsanleitung /plugins zu führen;
  • dort Download, einmaligen Upload in Claude Web und Rückkehr zu SkillPilot nummeriert zu erklären;
  • den lernendenseitigen manuellen Connector-Status sowie die wirkungslose lokale Zurücksetzen-Aktion zu entfernen;
  • in Schritt 2 ohne vorgeschaltete Connector-Prüfung die bereits validierte, q-vorausgefüllte Claude-Web-Lernsession zu öffnen;
  • die getrennte Claude-Pro-Beta in öffentlichen Hilfetexten als geführten First-Party-Weg zu beschreiben, weiterhin ohne Behauptung einer offiziellen Anthropic-Marktplatzveröffentlichung.

Dieser geführte First-Party-Betaweg wird erst nach einem abgeschlossenen SkillPilot-Lernenden-Setup angeboten. Die Installationsroute bleibt noindex und wird weder als offene öffentliche Beta noch als offizieller Marktplatzweg beworben. Ihre eigene Readiness ist in der Direct-Install-Lane getrennt von openPublicBetaReady belegt; die offenen Legal-, Support- und Public-Beta-Gates bleiben dadurch unverändert fail-closed. Interne Distributions- und Readiness-Felder werden nicht in den bewusst minimalen öffentlichen Downloadindex kopiert.

Die im Plugin enthaltene technische MCP-Konfiguration bleibt unverändert. Der eingereichte ChatGPT-Startbutton und sein Handler, die vorbereitete ChatGPT-Nachricht, die 24-Stunden-Sessionsemantik, das OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert und eingefroren. Weder ein Zurückziehen noch ein erneutes Einreichen des laufenden OpenAI-Portalreviews ist dadurch erforderlich.

Die Hashkette von SessionSetup.tsx wird erneut fortgesetzt:

  1. geführte Claude-Pro-Plugin-Einrichtung: b56c60fbdf44021c92c9477602207409911ef1049d5a313cc99702f9424e9031.

Die aktuelle Regressionsevidenz app/scripts/testClaudeV1StartUi.tsx ist mit 5e833c8525919254db82e3e6d127c00911ec4a8d10408f8216a51d109f66fc8f gepinnt. Sie belegt den nummerierten Claude-only-Ablauf, den direkten Claude-Webstart, die Abwesenheit eines simulierten Verbindungsstatus und die unveränderte Trennung vom ChatGPT-Handler. Der aktuelle Claude-Webadapter app/src/utils/claudeCoach.ts ist mit ac57943f16a0cd7cb1c6ce4fd9665821abfd8c3c586877713221cc6220456030 gepinnt.

6.5 Eng begrenzte Klarstellung: aktuell nutzbarer Coach-Zugang

Der Product Owner hat am 25. August 2026 klargestellt, dass die öffentlichen Start- und Vergleichshinweise den realen Freigabestatus unmissverständlich nennen müssen: Aktuell funktioniert der SkillPilot-Lerncoach ausschließlich über den Claude-Betaweg. Dafür ist ein kostenpflichtiger Claude-Tarif erforderlich; unterstützt und getestet ist derzeit Claude Pro. ChatGPT wartet weiterhin auf die Freigabe und ist für Lernende derzeit nicht nutzbar.

Freigegeben ist ausschließlich, diese Aussage im deutschen und englischen Startseitenbanner und in der vorhandenen Zugangsvergleichsansicht zu ersetzen und mit Regressionen zu belegen. Der Vergleichslink bleibt bestehen. Beide Providerhandler, vorbereitete Nachrichten, Sessionsemantik, Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert. Insbesondere wird weder eine ChatGPT-Freigabe behauptet noch der eingereichte ChatGPT-Handler verändert.

Die Klarstellung ist separat hashgebunden:

  • app/src/locales/de.ts: e1f30f7e1673c0993871edb238691e71d144455812a7ac975402b77d039eeef0;
  • app/src/locales/en.ts: 241e349c71816a76d4d3754a56791ea6a18b6391fe9f972c27de32fafa353da6;
  • app/scripts/testRootRoutePolicy.ts: b9d399e5bf42a8b8ba4a48cffd7d89edeb16bde52b7d89a5e9747ee8e2d666e4 → d0699da8dacafaac489017ed49ab04fb1d5e8b66f38f30b4f03c25c5d49110ad;
  • app/src/utils/coachProviderMatrixCopy.ts: 2c24a78b60d0556e194799e5c531f319d4419f68f7ca7b0945b311f551f6da2c;
  • app/src/utils/coachProviderMatrixCopy.test.ts: 3dfc8be12202ddb545eec44b0e5860e5d2d8008f1fce27060e7f9ed6a19fb1e1.

Der Freeze-Checker validiert diese fünf Dateien über authorizedCopyClarifications. Die Klarstellung erfordert weder ein Zurückziehen noch eine erneute Einreichung im OpenAI-Portal, weil sie den laufenden Reviewstatus wahrheitsgemäß beschreibt und keinen eingereichten Vertrag oder Reviewablauf verändert.

6.6 Eng begrenzte Klarstellung: vollständige Claude-Plugin-Einrichtung

Der Product Owner hat am 25. August 2026 festgestellt, dass die bisherige Kurzangabe „Anpassen → Plugins“ und das Ende der Anleitung direkt nach dem Datei-Upload praktische Einrichtungsblocker darstellen. In der real beobachteten deutschen Claude-Weboberfläche führt der Weg über das Profil unten links zu „Einstellungen“, dort links unter „Anpassen“ zu „Plugins“ und anschließend oben rechts über „Hinzufügen“ zum Upload einer benutzerdefinierten Plugin-Datei. Die offizielle Anthropic-Hilfe beschreibt daneben den direkten Einstieg über „Customize → Plugins“, der je nach Oberflächenvariante bereits in der Hauptseitenleiste sichtbar sein kann.

Freigegeben ist ausschließlich, im deutschen und englischen /plugins- Leitfaden den vollständigen Ablauf als fünf eng begrenzte Schritte darzustellen: die aktuelle Datei zuerst herunterladen, ausschließlich alte SkillPilot-Plugin-Einträge entfernen, die aktuelle Datei hochladen und bei Bedarf aktivieren, im neuen Plugin den enthaltenen SkillPilot-Konnektor verbinden und dessen Claude-Freigabe abschließen sowie danach zu SkillPilot zurückkehren. Andere Plugins und separat vorhandene Konnektoren bleiben unangetastet; ein zweiter manueller SkillPilot-Konnektor oder die manuelle Eingabe einer MCP-URL werden ausdrücklich ausgeschlossen.

Der Downloadindex, das Pluginarchiv, die Download-URL, die gebündelte Konnektordeklaration und ihr Endpunkt, Providerhandler, vorbereitete Nachrichten, Sessionsemantik, Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert.

Die Klarstellung ist separat hashgebunden:

  • app/src/views/PluginCatalogView.tsx: 548aa480c96d76d1a2f9403c4631a74d6d891565c62a0b5197fd59e4092a8e5a;
  • app/src/utils/claudePluginPublication.test.ts: f6efd1d17ff352bbd4943d967577eab475a636515949d159505b066a7936a6c2.

Der Freeze-Checker validiert beide Dateien als zweiten Eintrag in authorizedCopyClarifications. Die Änderung betrifft ausschließlich die Claude-spezifische First-Party-Installationshilfe und erfordert daher weder ein Zurückziehen noch eine erneute Einreichung des unveränderten OpenAI-V1-Vertrags.

Der Product Owner hat am 26. August 2026 entschieden, die vorhandene Read-only-Ansicht der Lernzielbücher für Mathematik und Physik auf der öffentlichen SkillPilot-Startseite direkt auffindbar zu machen. Die Bücher und ihre PDFs waren bereits unter /lernzielbuch erreichbar; geändert wird nur ihre Sichtbarkeit als lokalisierter Navigationslink.

Freigegeben ist ausschließlich:

  • PUBLIC_GOAL_BOOK_PROMOTION_ENABLED in SessionSetup.tsx einzuschalten;
  • dadurch den bereits vorhandenen deutschen beziehungsweise englischen Link auf /lernzielbuch außerhalb von Package-Consumer-Builds anzuzeigen;
  • die fokussierten Regressionen für genau diese Sichtbarkeit zu aktualisieren.

Der öffentliche Sitemap-Eintrag bleibt im Rahmen dieser eng begrenzten Entscheidung unverändert aus. Die Lernzielbuchroute bleibt read-only. Coach- Start, vorbereitete Nachrichten, Session- und Lernzustandssemantik, OpenAI- Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert. Daher ist weder ein Zurückziehen noch eine erneute Einreichung des laufenden OpenAI-Portalreviews erforderlich.

Die Hashkette von SessionSetup.tsx wird fortgesetzt:

  1. öffentlicher Lernzielbuch-Link: 71c1d46f9eb42ab9a1d643df44e65fb35a89ece2b0a901f9ea045b64c56aae84.

Die Regressionen sind zusätzlich hashgebunden:

  • app/src/views/WorkbenchView.test.ts: 97e2c090d00859dd0389dbccdfe226b187293bcbac6d0ada1cddd4ae313a59d6;
  • app/scripts/testSessionSetupCompletionUi.ts: afb66331e9bf1707195b1389d28bfe09839a9c3a130800bc207d6ed9602426fe.

6.8 Eng begrenzte Ausnahme: gemeinsamer SkillPilot-Überblick

Der Product Owner hat am 27. August 2026 entschieden, die zwei parallelen Zugänge zur SkillPilot-Idee auf der öffentlichen Startseite nach dem Anliegen der Besuchenden zusammenzuführen. Der eigenständige Audio-Einstieg und der separate Konzeptlink werden deshalb durch eine gemeinsame lokalisierte Überblickskarte mit genau drei direkten Aktionen ersetzt; die Inhalte und ihre direkten Ziele bleiben erhalten.

Freigegeben ist ausschließlich:

  • auf der öffentlichen Startseite den eigenständigen Audio-Einstieg und den separaten Konzeptlink durch eine lokalisierte Überblickskarte mit exakt drei Aktionen und ohne zusätzlichen neutralen „Überblick öffnen“-Link zu ersetzen;
  • dafür die unveränderte Route /whitepaper/:lang weiterzuverwenden;
  • Audio und Video über ihre bestehenden Anker mit einem einmaligen Wiedergabe-Intent direkt zu starten;
  • das Whitepaper direkt über seinen bestehenden Anker zu öffnen und bei einem neutralen Aufruf von /whitepaper/:lang keinerlei Medium automatisch abzuspielen;
  • den neuen fokussierten Überblickstest für genau diese Abgrenzung hinzuzufügen.

Coach-Handler, vorbereitete Nachrichten, Session- und Lernzustandssemantik, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert. Die Änderung betrifft nur die Informationsnavigation des aktuellen Produktions-Webfrontends. Daher ist weder ein Zurückziehen noch eine erneute Einreichung des laufenden OpenAI-Portalreviews erforderlich; das eingefrorene Plugin bleibt skillpilot-coach-v1 Version 1.0.0.

Die Hashkette von SessionSetup.tsx wird fortgesetzt:

  1. gemeinsamer SkillPilot-Überblick: df4ce08ff28f0a88e70752c1d05373ec37eab1e8af3e59334ab1a73a41169140.

Die fokussierte Regression wurde vor der nächsten autorisierten Änderung byte-identisch als historische Evidenz archiviert und ist zusätzlich hashgebunden:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-27-testPublicOverviewUi.tsx: 69b029ea922aea40ddddac6630fe04e89ace84e135d16586d5305ed34cbd1fb3.

6.9 Eng begrenzte Ausnahme: Vision und Mission im bestehenden Überblick

Der Product Owner hat am 28. August 2026 für das aktuelle Produktions-Webfrontend ausdrücklich genehmigt, die bestehende Überblickskarte um genau einen lokalen Vision-&-Mission-Disclosure-Button einschließlich der genehmigten deutschen und englischen Kurz- und Langtexte zu ergänzen. Das OpenAI-Plugin bleibt unverändert skillpilot-coach-v1 Version 1.0.0; ein Zurückziehen oder erneutes Einreichen im Portal ist nicht erforderlich.

Diese Entscheidung ersetzt ausschließlich die in Abschnitt 6.8 festgelegte Grenze von genau drei interaktiven Aktionen. Weiterhin vorhanden und unverändert bleiben genau drei direkte Medienaktionen für Audio-Einführung, Präsentationsvideo und Whitepaper. Als viertes interaktives Element ist genau ein zunächst geschlossenes, semantisches Disclosure innerhalb derselben Karte freigegeben.

Freigegeben ist ausschließlich:

  • die bisherige lokalisierte Kurzbeschreibung durch die genehmigte kompakte Vision und Mission zu ersetzen; sie nennt offene, von Menschen gestaltete, geprüfte und verantwortete Wissenslandschaften, verlässliche Orientierung für Lernende und ihre persönliche KI sowie die lernfortschrittsbezogene Sichtbarkeit für fundierte pädagogische Entscheidungen und gezielte Lernbegleitung;
  • unter den drei Medienaktionen genau einen deutsch beziehungsweise englisch beschrifteten Textbutton anzuzeigen, der einen zunächst verborgenen Bereich mit dem genehmigten vollständigen Vision-und-Mission-Wortlaut innerhalb derselben Karte öffnet und wieder schließt;
  • das Disclosure tastaturbedienbar mit aria-expanded, aria-controls und einem für assistive Technik ausgeblendeten Zustands-Chevron umzusetzen, ohne automatische Öffnung, Modal, Pop-up, neue Route, zusätzliche Karte oder zusätzlichen Hauptnavigationspunkt;
  • die mobile und Desktop-Darstellung sowie die exakten deutschen und englischen Texte, den anfänglich geschlossenen Zustand, die Disclosure-Semantik und die unveränderten Medienziele mit der fokussierten Überblicksregression zu belegen.

Die Seitenreihenfolge Lernen starten → SkillPilot im Überblick → Curriculum-Champions bleibt unverändert; Lernen starten bleibt die erste und wichtigste Aktion. Alle drei Medienziele, Anker und einmaligen Wiedergabe-Intents sowie das neutrale Verhalten von /whitepaper/:lang bleiben unverändert. SessionSetup.tsx bleibt byte-identisch. Coach-Handler, vorbereitete Nachrichten, Session- und Lernzustandssemantik, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert und eingefroren.

Die Hashkette dokumentiert deshalb ausdrücklich einen autorisierten Schritt ohne Änderung an SessionSetup.tsx:

  1. Vision-&-Mission-Disclosure im bestehenden Überblick: df4ce08ff28f0a88e70752c1d05373ec37eab1e8af3e59334ab1a73a41169140 (vorher und nachher byte-identisch).

Die beiden autorisierten Implementierungsstände wurden vor der nächsten Änderung byte-identisch als historische Evidenz archiviert. Sie bleiben mit ihrem vorherigen und ihrem autorisierten SHA-256 verankert:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-28-SkillPilotOverviewCard.tsx: 1a2c27f60320b1296e32f20bae7af3adbf7625762c52ea1dfb5d2cd5a20df420 → 0b6c7539cb55d02f78198f3a50fcd8a95ac9b0c6bd0f8d5fa8d486352e2f75b3;
  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-28-skillPilotOverviewCopy.ts: 537e128921b534c8abdd71d4bdc5dc8afda63b865da2598fdcde9957e57d56cb → f2192dfabe8d2f00ca6f2bad01c0e65b5982dcd68aba426b10e9c4a59c43ec01.

Auch die fokussierte Regression wurde vor der nächsten autorisierten Änderung byte-identisch archiviert und ist hashgebunden:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-28-testPublicOverviewUi.tsx: 45fbf9051fd2cf143cdb7414f0434ad4dc82471d9728689d620454d218c7f72c.

6.10 Eng begrenzte Ausnahme: sachlicher Überblick und eingeordnete Langfristperspektive

Der Product Owner hat am 28. August 2026 für das aktuelle Produktions-Webfrontend ausdrücklich genehmigt, den geschlossenen Zustand der Überblickskarte wieder auf den heutigen sachlichen Informationseinstieg zu begrenzen. Die bereits freigegebene vollständige Vision und Mission bleibt auf Wunsch in derselben Karte erreichbar, wird aber ausdrücklich als langfristiges Ziel und Weg dorthin eingeordnet. Das OpenAI-Plugin bleibt unverändert skillpilot-coach-v1 Version 1.0.0; ein Zurückziehen oder erneutes Einreichen im Portal ist nicht erforderlich.

Diese Entscheidung verfeinert ausschließlich die Darstellung aus Abschnitt 6.9. Weiterhin vorhanden bleiben genau drei direkte Medienaktionen und genau ein zunächst geschlossenes, semantisches Vision-&-Mission-Disclosure. Es wird kein weiteres interaktives Element, keine Route und kein Hauptnavigationspunkt ergänzt.

Freigegeben ist ausschließlich:

  • im geschlossenen deutschen Zustand nur wieder die sachliche Unterzeile „Die Idee hinter SkillPilot – anhören, ansehen oder lesen.“ und im englischen Zustand die entsprechende Unterzeile „The idea behind SkillPilot—listen, watch, or read.“ anzuzeigen;
  • die zuvor sofort sichtbare kompakte Vision „Alles Wissen. Für jeden Menschen.“ beziehungsweise „All knowledge. For everyone.“ und den kompakten Missionstext vollständig aus dem geschlossenen Zustand zu entfernen;
  • den bestehenden Disclosure-Button in dieselbe umbrechende Aktionszeile wie Audio-Einführung, Präsentationsvideo und Whitepaper zu integrieren, bei ausreichender Breite rechts auszurichten und auf kleineren Bildschirmen umbrechen zu lassen;
  • die sichtbare Buttonbeschriftung im geschlossenen und geöffneten Zustand konstant bei „Vision & Mission“ zu belassen; ausschließlich aria-expanded und der für assistive Technik ausgeblendete Chevron zeigen den Zustand an;
  • im geöffneten Bereich vor dem unveränderten vollständigen Wortlaut den Hinweis „Vision und Mission beschreiben unser langfristiges Ziel und den Weg dorthin.“ beziehungsweise „Vision and mission describe our long-term goal and the path towards it.“ anzuzeigen;
  • Vision und Mission ab 850 CSS-Pixeln zweispaltig und darunter untereinander darzustellen, ohne die Schrift zu verkleinern;
  • den Zustand bei jedem ersten Seitenaufruf geschlossen zu lassen und nicht dauerhaft zu speichern sowie die exakten deutschen und englischen Texte, Responsive-Darstellung, Disclosure-Semantik und unveränderten Medienziele mit der fokussierten Überblicksregression zu belegen.

Die Seitenreihenfolge Lernen starten → SkillPilot im Überblick → Curriculum-Champions bleibt unverändert; Lernen starten bleibt die erste und wichtigste Aktion. Alle drei Medienziele, Anker und einmaligen Wiedergabe-Intents sowie das neutrale Verhalten von /whitepaper/:lang bleiben unverändert. SessionSetup.tsx bleibt byte-identisch. Coach-Handler, vorbereitete Nachrichten, Session- und Lernzustandssemantik, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert und eingefroren.

Die Hashkette dokumentiert deshalb erneut ausdrücklich einen autorisierten Schritt ohne Änderung an SessionSetup.tsx:

  1. sachlicher geschlossener Überblick und eingeordnete Langfristperspektive: df4ce08ff28f0a88e70752c1d05373ec37eab1e8af3e59334ab1a73a41169140 (vorher und nachher byte-identisch).

Der autorisierte Komponentenstand wurde vor der nächsten Änderung byte-identisch als historische Evidenz archiviert. Die unveränderte Copy-Datei bleibt zusätzlich live hashgebunden:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-28-factual-overview-SkillPilotOverviewCard.tsx: 0b6c7539cb55d02f78198f3a50fcd8a95ac9b0c6bd0f8d5fa8d486352e2f75b3 → 8495949581cbd3c9efcfe5b7decb49ca3e32f0e881435be946cd0c7170ee7c54;
  • app/src/utils/skillPilotOverviewCopy.ts: f2192dfabe8d2f00ca6f2bad01c0e65b5982dcd68aba426b10e9c4a59c43ec01 → 8698f3c9bfb995dab191cd2e317e4fc80f566ec4e449e0dc4152bcc5e34eef4d.

Auch die fokussierte Regression wurde vor der nächsten autorisierten Änderung byte-identisch archiviert und ist hashgebunden:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-28-factual-overview-testPublicOverviewUi.tsx: f4911b536c399516bee60b66abbeca9578a8d01ac540d8b534abb4b2858b1b7d.

6.11 Eng begrenzte Ausnahme: einfacher grüner Interaktionsrahmen

Der Product Owner hat am 28. August 2026 für das aktuelle Produktions-Webfrontend ausdrücklich genehmigt, den doppelten violetten Interaktionsrahmen der Überblickskarte durch genau einen zurückhaltenden, ein Pixel breiten grünen Kartenrand zu ersetzen. Die fokussierte einzelne Aktion behält ihren eigenen gut sichtbaren Fokusindikator. Das OpenAI-Plugin bleibt unverändert skillpilot-coach-v1 Version 1.0.0; ein Zurückziehen oder erneutes Einreichen im Portal ist nicht erforderlich.

Freigegeben ist ausschließlich:

  • bei Hover oder Fokus innerhalb der Überblickskarte genau den bestehenden ein Pixel breiten Kartenrand grün einzufärben;
  • den äußeren kartenweiten Ring, seinen Offset und die dadurch entstehende doppelte Linie vollständig zu entfernen;
  • die focus-visible-Ringe der drei Medienlinks und des Vision-&-Mission-Disclosure-Buttons unverändert beizubehalten;
  • den einzelnen grünen Kartenrand, die Abwesenheit eines äußeren Kartenrings und die weiterhin sichtbaren Fokusindikatoren der einzelnen Aktionen mit der fokussierten Überblicksregression zu belegen.

Sämtliche deutschen und englischen Texte, Layouts, Aktionen, Medienziele, Anker, einmaligen Wiedergabe-Intents und das neutrale Verhalten von /whitepaper/:lang bleiben unverändert. Die Seitenreihenfolge Lernen starten → SkillPilot im Überblick → Curriculum-Champions bleibt unverändert; Lernen starten bleibt die erste und wichtigste Aktion. SessionSetup.tsx bleibt byte-identisch. Coach-Handler, vorbereitete Nachrichten, Session- und Lernzustandssemantik, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert und eingefroren.

Die Hashkette dokumentiert deshalb erneut ausdrücklich einen autorisierten Schritt ohne Änderung an SessionSetup.tsx:

  1. einfacher grüner Interaktionsrahmen ohne äußeren Kartenring: df4ce08ff28f0a88e70752c1d05373ec37eab1e8af3e59334ab1a73a41169140 (vorher und nachher byte-identisch).

Der autorisierte Komponentenstand wurde vor der nächsten Änderung byte-identisch als historische Evidenz archiviert und bleibt mit seinem vorherigen und seinem autorisierten SHA-256 verankert:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-28-single-green-frame-SkillPilotOverviewCard.tsx: 8495949581cbd3c9efcfe5b7decb49ca3e32f0e881435be946cd0c7170ee7c54 → b55844133b156287db7a763e52fc225505435f975438d5651bccaf6692ca2a90.

Auch die fokussierte Regression wurde vor der nächsten autorisierten Änderung byte-identisch archiviert und ist hashgebunden:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-28-single-green-frame-testPublicOverviewUi.tsx: 0097c3418e3a310907f4d82edd380399b15571225b603d73d73269a21191838f.

6.12 Eng begrenzte Ausnahme: Vision und Mission als vierte Aktionspille

Der Product Owner hat am 28. August 2026 für das aktuelle Produktions-Webfrontend ausdrücklich genehmigt, das bestehende Vision-&-Mission-Disclosure nicht mehr als freistehenden violetten Textlink, sondern als vierte gleichrangige Aktionspille unmittelbar nach dem Whitepaper anzuzeigen. Das OpenAI-Plugin bleibt unverändert skillpilot-coach-v1 Version 1.0.0; ein Zurückziehen oder erneutes Einreichen im Portal ist nicht erforderlich.

Freigegeben ist ausschließlich:

  • Audio-Einführung, Präsentationsvideo, Whitepaper und Vision & Mission in dieser Reihenfolge in genau einer semantischen Liste anzuordnen, deren zugängliche Beschriftung die lokalisierte Überschrift der Überblickskarte ist;
  • Vision & Mission als vierte direkt anschließende Pille mit einem führenden, für assistive Technik ausgeblendeten Kompasssymbol, der konstanten sichtbaren Beschriftung „Vision & Mission“ und dem nachgestellten Zustands-Chevron darzustellen;
  • die geschlossene Pille wie die drei Medienpillen zu gestalten und nur den geöffneten Zustand grün hervorzuheben;
  • den Chevron beim Öffnen nach oben zu drehen und beim Schließen wieder nach unten zu drehen, während aria-expanded und aria-controls die semantische Zustands- und Bereichsbeziehung unverändert abbilden;
  • die frühere freistehende violette Linkdarstellung, automatische Rechtsausrichtung und Unterstreichung zu entfernen;
  • die genaue Reihenfolge, Listensemantik, Symbole, konstanten Texte, Zustandsdarstellung, Tastaturbedienung und responsive Umbruchfreiheit mit der fokussierten Überblicksregression zu belegen.

Sämtliche deutschen und englischen Texte, Medienrouten und Wiedergabe-Intents, der initial geschlossene Disclosure-Zustand, Inhalt und Layout des geöffneten Bereichs sowie der einzelne grüne Interaktionsrahmen der Karte bleiben unverändert. Die Seitenreihenfolge Lernen starten → SkillPilot im Überblick → Curriculum-Champions bleibt unverändert; Lernen starten bleibt die erste und wichtigste Aktion. SessionSetup.tsx bleibt byte-identisch. Coach-Handler, vorbereitete Nachrichten, Session- und Lernzustandssemantik, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert und eingefroren.

Die Hashkette dokumentiert deshalb erneut ausdrücklich einen autorisierten Schritt ohne Änderung an SessionSetup.tsx:

  1. Vision und Mission als vierte Aktionspille: df4ce08ff28f0a88e70752c1d05373ec37eab1e8af3e59334ab1a73a41169140 (vorher und nachher byte-identisch).

Der autorisierte Komponentenstand wurde vor der nächsten Änderung byte-identisch als historische Evidenz archiviert und bleibt mit seinem vorherigen und seinem autorisierten SHA-256 verankert:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-29-adjacent-vision-mission-pill-SkillPilotOverviewCard.tsx: b55844133b156287db7a763e52fc225505435f975438d5651bccaf6692ca2a90 → d7408c72ba5a98791a54c586a08b6be320a1ab059efb723fd627351312d255eb.

Auch die fokussierte Regression wurde vor der nächsten autorisierten Änderung byte-identisch archiviert und ist hashgebunden:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-29-adjacent-vision-mission-pill-testPublicOverviewUi.tsx: f85a72c8440d1b315664ce912fbd6ced1bdfdf4156d02d7afff5d47cc26c83b2.

6.13 Eng begrenzte Ausnahme: grüne Überschrift im Interaktionszustand

Der Product Owner hat am 29. August 2026 für das aktuelle Produktions-Webfrontend ausdrücklich genehmigt, die Überschrift der Überblickskarte im grünen Hover- beziehungsweise Fokuszustand nicht mehr violett, sondern passend zum bereits freigegebenen grünen Kartenrand darzustellen. Das OpenAI-Plugin bleibt unverändert skillpilot-coach-v1 Version 1.0.0; ein Zurückziehen oder erneutes Einreichen im Portal ist nicht erforderlich.

Freigegeben ist ausschließlich:

  • die Überschrift bei Hover und bei Fokus innerhalb der Karte im hellen Modus mit dem etablierten emerald-700 und im dunklen Modus mit emerald-300 darzustellen;
  • die violette Interaktionsfarbe vollständig von der Überschrift zu entfernen, während ihre neutrale Ausgangsfarbe unverändert bleibt;
  • damit Überschrift und einzelner grüner Kartenrand als ein konsistenter Interaktionszustand erscheinen;
  • die vier hellen beziehungsweise dunklen Hover-/Fokusklassen und die Abwesenheit einer violetten Überschriftenklasse mit der fokussierten Überblicksregression zu belegen. Die gewählten Farben erreichen auf den vorhandenen Kartenhintergründen mindestens WCAG-AA-Kontrast für normalen Text.

Sämtliche deutschen und englischen Texte, Layouts, Aktionen, Medienziele, Anker, Wiedergabe-Intents, Disclosure- und Aktionspillenverhalten sowie der einzelne grüne Interaktionsrahmen der Karte bleiben unverändert. Die Seitenreihenfolge Lernen starten → SkillPilot im Überblick → Curriculum-Champions bleibt unverändert; Lernen starten bleibt die erste und wichtigste Aktion. SessionSetup.tsx bleibt byte-identisch. Coach-Handler, vorbereitete Nachrichten, Session- und Lernzustandssemantik, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert und eingefroren.

Die Hashkette dokumentiert deshalb erneut ausdrücklich einen autorisierten Schritt ohne Änderung an SessionSetup.tsx:

  1. grüne Überschrift im Hover- und Fokuszustand: df4ce08ff28f0a88e70752c1d05373ec37eab1e8af3e59334ab1a73a41169140 (vorher und nachher byte-identisch).

Die aktualisierte Implementierungsdatei ist mit ihrem vorherigen und ihrem neuen autorisierten SHA-256 verankert:

  • app/src/components/SkillPilotOverviewCard.tsx: d7408c72ba5a98791a54c586a08b6be320a1ab059efb723fd627351312d255eb → 16329baefd5fbbf5d733253508a57661c67e0ba5d49583f6cec119fe5695a77a.

Die aktualisierte fokussierte Regression ist ebenfalls hashgebunden:

  • app/scripts/testPublicOverviewUi.tsx: fe66f2148c198663aa671ce1a1eea4ccdf57b23bfdb4f20287c0c42a832ef757.

6.14 Eng begrenzte Ausnahme: obsoleten Gymnasium-Runtime-Cutover entfernen

Der Product Owner hat am 29. August 2026 für das aktuelle Produktions-Webfrontend und -Backend ausdrücklich genehmigt, den nur für eine Übergangsphase gebauten Gymnasium-Legacy-Cutover vollständig zu entfernen. Der Grund ist, dass keine realen Legacy-Lernenden diesen Migrationspfad benötigen. Das OpenAI-Plugin bleibt unverändert skillpilot-coach-v1 Version 1.0.0; ein Zurückziehen oder erneutes Einreichen im Portal ist nicht erforderlich.

Freigegeben ist ausschließlich:

  • das Bulkwerkzeug in UsersView samt Bulk-Endpunkt und ausschließlich dafür vorhandenen DTOs, Zählern, Tests und Texten zu entfernen;
  • den Einzel-Cutover sowie die dazugehörigen Banner, Retirement-Ansichten und Hilfslogik aus dem Lernenden-Cockpit zu entfernen;
  • den dedizierten per-learner Kompatibilitätsarchiv-Download samt Endpoint, DTOs, Servicepfad und ausschließlich dazugehörigen Tests zu entfernen;
  • die danach eindeutig toten Frontend-Helper, Package-Consumer-Aliase und Backend-Servicepfade zu entfernen;
  • verbleibende generische Read-only-Fehlertexte von den entfernten Aktionen zu entkoppeln.

Unverändert erhalten bleiben die kanonischen Curricula, die internen Quelllandschaften sowie die DE-weiten Archive, Mapping-, Provenance-, Kompatibilitäts-Summary- und Topic-Summary-Lanes. Ebenfalls unverändert bleiben die aktuelle Personalization-Migration, alle unterstützten aktuellen Lernzustandssemantiken, Coach-Handler, vorbereitete Nachrichten, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte. Die deutschen und englischen Locale-Dateien bleiben byte-identisch; ihre nun ungenutzten historischen Operator-Texte werden wegen der bestehenden Hashbindung nicht in dieser Ausnahme verändert.

Der vorherige geschützte Stand wurde vor der Änderung byte-identisch als historische Evidenz archiviert und bleibt zusammen mit dem autorisierten Hash verankert:

  • app/src/views/LearnerView.tsx: ec694882cdc5c9eb7e635723715a719f9588b0f2f06f8c57c579f060f7540ed7 → d579e459e6450cc6891971bab3a65621a3409a0c5d16ae9c22ce67b24956e0e6;
  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-29-pre-runtime-cutover-cleanup-LearnerView.tsx: ec694882cdc5c9eb7e635723715a719f9588b0f2f06f8c57c579f060f7540ed7.

6.15 Eng begrenzte Ausnahme: standardmäßig deaktivierte Feedback-Konfiguration

Der Product Owner hat am 30. August 2026 ausdrücklich genehmigt, application.yml anzupassen, sofern das Risiko überschaubar bleibt. Diese Freigabe wird eng ausgelegt: Sie erlaubt ausschließlich einen neuen, standardmäßig deaktivierten Konfigurationszweig für die öffentliche Lernzielbuch-Rückmeldung und deren operatorgeschützte Übergabe von Produktion in eine lokale Codex-Entwicklungsumgebung. Das OpenAI-Plugin bleibt unverändert skillpilot-coach-v1 Version 1.0.0; ein Zurückziehen oder erneutes Einreichen im Portal ist nicht erforderlich.

Freigegeben ist ausschließlich, direkt unter dem bereits vorhandenen skillpilot.public-base-url den Zweig skillpilot.goal-feedback anzulegen mit:

  • enabled, dessen eingecheckter Standard false bleibt;
  • einem eigenen, standardmäßig leeren operator-token;
  • begrenzten öffentlichen Rate-Limit-Werten für Requests, Zeitfenster und die maximale Zahl lokaler Zähler-Buckets; und
  • begrenzten Inbox-Werten für ausstehende Zeilen und Bytes.

Keine vorhandene Property, kein bestehender Default und keine OpenAI-, Claude-, MCP-, OAuth-, Tool-, Schema-, UI-, Session-, Zustands- oder Review-Semantik darf dabei verändert werden. Die Feedback-Komponenten werden nur bei der expliziten Aktivierung instanziiert; eine Aktivierung ohne mindestens 32 Zeichen langes, eigenständiges Operator-Token bricht den Start fail-closed ab. Diese Ausnahme ist weder eine Produktionsaktivierung noch eine Deployment-Freigabe.

Der geschützte Konfigurationsstand ist mit seiner unveränderten Submission-Baseline und dem eng autorisierten neuen SHA-256 verankert:

  • backend/src/main/resources/application.yml: 15b120a2799148b10f9963fcae6fc998d4f1356b13489be9b6dc89c59161f591 → 83df7973dc6bea7457d8398b55a600b5de2a4349dd32dd6faccef37a488b2990.

Die fokussierte Produktionsübergabe-Regression belegt Aktivierung, versionierte Annahme, wiederaufnehmbaren Export, Digestbindung, atomare Löschung, inhaltsfreien Receipt und historische PDF-Auflösung und ist ebenfalls hashgebunden:

  • backend/src/test/java/com/skillpilot/backend/goalfeedback/GoalFeedbackProductionHandoffIntegrationTest.java: ff053be447e56015dd595b67e3a4cfa2cad7eb2875c42b51c224f6f3f0f0a9dc.

6.16 Eng begrenzte Ausnahme: Spring Boot 4.1.1

Der Product Owner hat am 30. August 2026 ausdrücklich genehmigt, dass der Review-Freeze dieses Wartungsupdate nicht verhindert. Freigegeben ist ausschließlich die Änderung des Gradle-Plugins org.springframework.boot von 4.1.0 auf 4.1.1 im aktuellen Produktions-Webbackend. Java-Version, Gradle-Wrapper, Spring-AI-BOM, Quellcode, Konfiguration sowie alle eingereichten ChatGPT-, MCP-, OAuth-, Tool-, Schema-, UI-, Session- und Reviewverträge bleiben unverändert. Diese Ausnahme ist weder eine Deployment-Freigabe noch eine allgemeine Aufhebung des Review-Freeze.

Der unmittelbar vorherige und der autorisierte Dateistand sind hashgebunden:

  • backend/build.gradle.kts: fcde2e8108d36e58a35f015a274efe5ad361465bafc2296789ea374dd246dec1 → b400ce01f36f653b96271e4f430f97f5595c7617c48132bdf76bcd9630d9a7f0.

Die öffentliche OpenAI-V1-Vertragsregression bleibt als unveränderte Evidenz hashgebunden:

  • backend/src/test/java/com/skillpilot/backend/openai/mcp/de/v1/OpenAiDeV1PublicContractValidationTest.java: e401636ab978d8a97b168e8e5bc606b4594e7a21ccae284064f2590a66c158bf.

6.17 Eng begrenzte Ausnahme: sichere Produktionsaktivierung des Lernziel-Feedbacks

Der Product Owner hat am 30. August 2026 mit „freeze soll uns hier nicht abhalten“ und anschließend „bitte zum Leben erwecken“ ausdrücklich entschieden, den unabhängig isolierten Lernziel-Feedbackkanal produktiv zu aktivieren. Die Freigabe umfasst ausschließlich die Feedback-WebGUI, den öffentlichen Feedback-Envelope samt Schema, die feedbackspezifische Persistenz, Übergabe, Aufbewahrung und Löschung sowie zugehörige Tests und Betriebsdokumentation.

Freigegeben sind insbesondere die auditierbare Bindung an Version und Sprache des angezeigten Datenschutzhinweises, die feste 30-Tage-Retention mit täglichem Cleanup, inhaltsfreie Terminalbelege und die abgesicherte Übergabe von Produktion in die lokale Entwicklungsablage. application.yml bleibt dabei byte-identisch auf dem bereits autorisierten Hash. Die eingesendete ChatGPT-V1-App, MCP-/OAuth-/Tool-/Schema-/UI-/Session-/State-Semantik, ihre Reviewfälle und Portalwerte bleiben unverändert; eine Portalaktion ist nicht erforderlich.

Die vor dieser Aktivierung hashgebundene Feedback-Regression ist unverändert archiviert:

  • contracts/openai/skillpilot-coach-v1/review-evidence/2026-08-30-pre-goal-feedback-activation-GoalFeedbackProductionHandoffIntegrationTest.java: ff053be447e56015dd595b67e3a4cfa2cad7eb2875c42b51c224f6f3f0f0a9dc.

Die aktualisierte Regression für Hinweisbindung, Retention und terminale Löschzustände ist ebenfalls hashgebunden:

  • backend/src/test/java/com/skillpilot/backend/goalfeedback/GoalFeedbackProductionHandoffIntegrationTest.java: 7c6eaba09fe95aa4334b31d9f5a19b65b4d6655926573a0679db75c4fd87159d.

6.18 Eng begrenzte Ausnahme: Lernziel-Feedback aus dem Lernenden-Cockpit

Der Product Owner hat am 31. August 2026 entschieden, dass eine lernende Person eine unmittelbar beim Lernen bemerkte Schwäche des sichtbaren Lernziels direkt aus dem Cockpit über den bereits etablierten Lernzielbuch-Feedbackweg melden kann. Ziel ist das aktuelle Produktions-Webfrontend zusammen mit dem unabhängig isolierten Lernziel-Feedbackkanal. Das OpenAI-Plugin bleibt unverändert skillpilot-coach-v1 Version 1.0.0; ein Zurückziehen oder erneutes Einreichen im Portal ist nicht erforderlich.

Freigegeben ist ausschließlich:

  • unter dem im Lernenden-Cockpit gerade sichtbaren, curricular-atomaren Mathematik- oder Physikziel eine lokalisierte sekundäre Aktion Feedback zu diesem Lernziel anzuzeigen;
  • die Aktion erst nach dem bewussten Klick über GET /api/public/goal-feedback/v1/current-binding mit exakt bookId und goalId gegen die bereits hashverifizierte, datenbankseitig als aktuell ausgewählte Buchpublikation aufzulösen;
  • diesen reinen Lesezugriff no-store auszuliefern und im selben begrenzten Fenster wie die bestehende Kontextauflösung zu rate-limitieren;
  • aus der Antwort exakt den vorhandenen siebenfach gebundenen /lernziel-feedback-Link aufzubauen. Die bestehende /context-Prüfung bleibt unverändert strikt und verlangt weiterhin genau bookId, goalId, edition, goalFingerprint, pageFingerprint, bookDigest und page;
  • den identischen URL-Builder auch im Lernzielbuch zu verwenden, ohne dessen Ziel, Parameter oder Navigation semantisch zu verändern;
  • Fehler als wiederholbare lokale Cockpit-Meldung anzuzeigen und schnelle Doppelklicks synchron auf genau einen Lookup zu begrenzen;
  • ausschließlich feedbackspezifische Frontend- und Backendtests sowie deren Test-Fixtures und npm-Testregistrierung zu ergänzen.

Die Aktion wird weder im Trainer noch im Explorer oder Package-Consumer freigeschaltet und bleibt für Cluster-, Struktur-, Orientierungs-, Memory- und Prüfungsziele unsichtbar. Weder SkillPilot-ID noch Learner-, Session-, Chat-, Lernstands-, Personalisierungs- oder Rollenwerte werden in Lookup oder Feedbacklink übertragen. Der Lookup verändert keinen Lernzustand. Coach-Handler, vorbereitete Nachrichten, Session-, Identitäts-, Lernstands- und Personalisierungssemantik, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert und eingefroren.

Der exakt freigegebene Dateiumfang besteht aus:

  • app/src/views/LearnerView.tsx und dem neuen isolierten app/src/components/LearnerGoalFeedbackAction.tsx;
  • app/src/utils/goalBookFeedback.ts, app/src/views/GoalBookView.tsx sowie in app/package.json ausschließlich test:learner-goal-feedback-ui und dessen Aufnahme in test:goal-feedback; die bereits separat beauftragte lokale test:teacher-supervision-Zeile gehört ausdrücklich nicht zu dieser Ausnahme;
  • app/vite.config.ts und der neue Package-Consumer-Ersatz app/src/packageConsumer/learnerGoalFeedbackUnavailable.tsx, der die Repository-Aktion bereits beim Build vollständig entfernt;
  • backend/src/main/java/com/skillpilot/backend/goalfeedback/GoalFeedbackPublicController.java, GoalFeedbackPublicProtectionFilter.java und GoalFeedbackPublicationRegistry.java im selben Verzeichnis;
  • app/src/utils/goalBookFeedback.test.ts, app/scripts/testLearnerGoalFeedbackUi.ts, die beiden zugehörigen learnerGoalFeedbackUi-Fixtures sowie GoalFeedbackPublicControllerTest.java, GoalFeedbackBoundaryFilterTest.java und GoalFeedbackPublicVisualizationIntegrationTest.java im vorhandenen Backend-Testpaket;
  • ausschließlich die zur erneuten Hashbindung notwendigen Änderungen an diesem Freeze-Dokument, contracts/openai/skillpilot-coach-v1/review-freeze.json und scripts/check_openai_plugin_review_freeze.mjs.

Die aktualisierte geschützte Cockpit-Datei ist als fortlaufende Ausnahme verankert:

  • app/src/views/LearnerView.tsx: d579e459e6450cc6891971bab3a65621a3409a0c5d16ae9c22ce67b24956e0e6 → f590240f9be5366032e081f39e9ad5617e7b3f9183ecb1291c3ab5af84416258.

Die unmittelbar wirksamen Implementierungsdateien sind ebenfalls hashgebunden:

  • app/src/components/LearnerGoalFeedbackAction.tsx (neu): b128ce146a555100f407996d24abbaaaafb76428bcd04377435551dbd75b9e15 → 8ee652562c7433c71d545a5205dfd14adaa9bc777fec9e48e6886819012f9832;
  • app/src/utils/goalBookFeedback.ts: 10a461427a5b77aa7e0605d0a7dd803b0c9d301676d1fb70d189370bb65d9890 → 94c9ffc088c85a6925391dd8e96f0134a78ec36ef4da30cee88ae34183e1eee7;
  • app/src/views/GoalBookView.tsx: 8682601cb2a443edae698c00f04a9df5b363a706970c580b0ca5c7c362c38c1e → e3ead51b2eca0e1b6674b60873f0f01536ce9e878bf7a15b82ecd3d701f4fa4e;
  • app/vite.config.ts: 87f095cf696cdb2c468257b837b3af61ec5c3c297c21d4e014f884f7903f84cd → 9c2f36efbd6755554b2ae2aeb5db0ec076e9a28cf3152b96e61ab99fc16735c7;
  • app/src/packageConsumer/learnerGoalFeedbackUnavailable.tsx (neu): baacb7c10a30ad3d5f01d0ac1d4d8d2185ab7c73ca22d6bb0dce2a36b4fc32da;
  • backend/src/main/java/com/skillpilot/backend/goalfeedback/GoalFeedbackPublicController.java: 8ffe70fc8688fa7cd42e20053ee6f7ce95a711191d43e0a3026a0947be22e961 → 9f8dee900851026f67accb94507b22574b6c147b8f878f65ddc82a7211ebf18e;
  • backend/src/main/java/com/skillpilot/backend/goalfeedback/GoalFeedbackPublicProtectionFilter.java: b76a1c55cd9790e2e7cdbb0dcc8c1772e9206cee2317ae708e65865293316587 → 86f6fe8874904af51b53a389cb5c833ed01f37d079fed20b03e5786c1dd2bcac;
  • backend/src/main/java/com/skillpilot/backend/goalfeedback/GoalFeedbackPublicationRegistry.java: 39270e4997fc06444ed7a716ca3cc82290579d7723c05e6816cd5cb3fab485da → 2f5b6a124a6b4600b8e2876d09b898ed93a65a159f5bc0d881f17f3a94e01b11.

Die fokussierte Browserregression ist mit folgendem SHA-256 gebunden:

  • app/scripts/testLearnerGoalFeedbackUi.ts: c0ddf7aaa3c36dd66c8f7993f2431c388fc1cf3fd2f005056e98bb6a8ef35ed5 → 7f3226c358320b32d3fe4d13f2b23479b70c2473e7dd6a838859604d68a08148;
  • app/scripts/fixtures/learnerGoalFeedbackUi.html: e7a99fcb3f0266a428682abaa2c6ddfa4443a0a20c57672a4055d56a99674f9d;
  • app/scripts/fixtures/learnerGoalFeedbackUi.tsx: 0332fad29d6eddc285943e0c3ed79de74c9c3b1ea69103433023d43bc5f11f3b → 876237cc4c1ce8c4c23ffe13e38a10c434558d0774dd8f0646ca0f7b37ed11f7.

6.19 Eng begrenzte Ausnahme: Rückkehr des Cockpit-Feedbacks ins Cockpit

Der Product Owner hat am 31. August 2026 entschieden, dass ein aus dem Lernenden-Cockpit begonnenes Lernziel-Feedback nach der Prüfung oder Einreichung zum selben Lernziel im Cockpit zurückführen muss und nicht ins Lernzielbuch. Feedbacklinks aus dem Lernzielbuch, aus einem PDF oder aus einem direkten Aufruf behalten ihren bisherigen Rücksprung zum exakt gebundenen Lernziel im Lernzielbuch.

Freigegeben ist ausschließlich:

  • beim bewussten Cockpit-Einstieg neben dem unveränderten siebenfach gebundenen Feedbacklink einen festen browserlokalen React-Router-Herkunftsmarker zu setzen;
  • genau den einen erwarteten Marker ohne weitere Felder anzuerkennen und daraus den Rücksprung zum gebundenen goalId im durch die statische Buchpublikations-Registry bestimmten Curriculum abzuleiten;
  • die lokalisierte Rücksprungbeschriftung als Zurück zum Cockpit bzw. Back to the cockpit anzuzeigen;
  • den Rücksprung auch nach einem Hard Reload und nach erfolgreicher Einreichung anzubieten, ohne automatisch zu navigieren und dadurch die Feedback-ID zu verdecken;
  • die fokussierten Unit- und Browserregressionen für Herkunftsprüfung, Reload-Persistenz, exaktes Rücksprungziel und unveränderte Übertragungsgrenzen zu ergänzen.

Nicht freigegeben sind frei übergebbare Rücksprung-URLs, zusätzliche Queryparameter oder ein aus dem Feedbackrequest übernommenes Curriculum. Die Feedback-URL, ihr siebenfach gebundener /context-Aufruf und das Einreichungsformat bleiben byte- und semantikgleich; der Herkunftsmarker wird weder an den Server noch mit dem Feedback übertragen. Unbekannte Parameter wie source, returnTo oder returnUrl bleiben ungültig. Es gibt keine Änderung an Backend, Lernzustand, Coach-Handlern, vorbereiteten Nachrichten, Session-, Identitäts- oder Personalisierungssemantik, OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Reviewfällen, Portalwerten, OpenAI-Review-Fixtures oder Reviewartefakten.

Die geschützte Cockpit-Datei bleibt in der fortlaufenden Ausnahme bytegleich:

  • app/src/views/LearnerView.tsx: f590240f9be5366032e081f39e9ad5617e7b3f9183ecb1291c3ab5af84416258 → f590240f9be5366032e081f39e9ad5617e7b3f9183ecb1291c3ab5af84416258.

Der exakt freigegebene Dateiumfang ist hashgebunden:

  • app/src/components/LearnerGoalFeedbackAction.tsx: b128ce146a555100f407996d24abbaaaafb76428bcd04377435551dbd75b9e15 → 8ee652562c7433c71d545a5205dfd14adaa9bc777fec9e48e6886819012f9832;
  • app/src/utils/goalFeedbackReturnNavigation.ts (neu): b4dc8797b1100c0b52f33875ce9f459ab2ac4e1c767dce0879de1e77741f7a7c;
  • app/src/views/GoalBookFeedbackPilotView.tsx: 946ecd1ebce142f766081a484ce5b0baaaa67ff5030208b82d2bba5a1a45cc12 → 78444751bb17278f53dad1022a05facd8546d9ca61fa7fe2faafd73e62e05d1c;
  • app/src/utils/goalBookFeedback.test.ts: bf9d80b60edbb27402b0ca992de94c1cfb177a57f0fc0a4598396b58db5bcc0c → 76a3e589539fe12c87a2847b86145bbc70e2f6788696edc0b9730081526b2985;
  • app/scripts/fixtures/learnerGoalFeedbackUi.tsx: 0332fad29d6eddc285943e0c3ed79de74c9c3b1ea69103433023d43bc5f11f3b → 876237cc4c1ce8c4c23ffe13e38a10c434558d0774dd8f0646ca0f7b37ed11f7;
  • app/scripts/testLearnerGoalFeedbackUi.ts: c0ddf7aaa3c36dd66c8f7993f2431c388fc1cf3fd2f005056e98bb6a8ef35ed5 → 7f3226c358320b32d3fe4d13f2b23479b70c2473e7dd6a838859604d68a08148;
  • app/scripts/testGoalBookFeedbackUi.ts: 2b0f5b58960a552de1fec27be029703ea36e67c7760e9fd9257b44057021ffce → ab3b57db6469cef0d9f7473b90f55690ee1e048c899e8dd90348ebc40481fffc.

Die gemeinsame URL-Erzeugung in app/src/utils/goalBookFeedback.ts bleibt bytegleich auf 94c9ffc088c85a6925391dd8e96f0134a78ec36ef4da30cee88ae34183e1eee7.

6.20 Eng begrenzter CI-Abgleich ohne Vertragsänderung

Der Product Owner hat am 31. August 2026 beauftragt, die drei nach dem Cockpit-Feedback-Commit fehlgeschlagenen CI-Jobs zu reparieren. Freigegeben ist ausschließlich der folgende fail-closed Abgleich:

  • die bereits bestehende Deaktivierung des Application Core auf der öffentlichen Route /betreuung in die zentrale rootRoutePolicy zu ziehen. Für alle Routen bleibt der Laufzeitwert identisch; zusätzlich verhindert die zentrale Policy, dass gespeicherter Curriculum-Zustand auf dieser öffentlichen Einladungsroute in die URL synchronisiert wird;
  • den geprüften kanonischen Mathematik-Input-Hash der G8/G9-Composition-View- Policy nach dem bereits fachlich freigegebenen Wechsel der einen Visualisierungsreferenz von .jpg auf .png neu zu binden. Lernziele, contains, Projektionen, Platzierungen und generierte Views bleiben unverändert;
  • die statische Freeze-Testreferenz um die bereits in den Abschnitten 6.18 und 6.19 autorisierten Ausnahmen zu ergänzen und die erwartete letzte LearnerView-Hashkette fortzuschreiben. Keine Prüfung oder Assertion wird entfernt oder gelockert;
  • den hermetischen Package-Consumer-Smoke auf den in Abschnitt 6.18 bereits autorisierten app/vite.config.ts-Hash neu zu binden und die dafür maßgebliche Readiness-Policy auf den neuen Runner-Hash fortzuschreiben. Alle Isolations-, Herkunfts- und Manipulationsprüfungen bleiben unverändert;
  • die vorhandene Root-Route-Regression um die Core- und URL-Synchronisierungsgrenze für /betreuung zu ergänzen. Ihre bisherigen Assertions zur Coach-Verfügbarkeit bleiben unverändert erhalten.

Der Abgleich verändert weder das eingereichte OpenAI-Paket noch MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Coach-Handler, Session-, Identitäts- oder Personalisierungssemantik, Reviewfälle, Portalwerte, OpenAI-Review-Fixtures oder Reviewartefakte. Er erfordert keine Portalaktion.

Die betroffenen Dateien sind nachvollziehbar gebunden:

  • app/src/App.tsx: 088291d7d3d328db75c0cba954e5f5950f6a14022e0c746a68a9f4f09b24a4aa → 5fd65fad8cd18faa6289412f6bc77d04084304bcea76671141080b19f44cc776;
  • app/src/utils/rootRoutePolicy.ts: 01f30a9710bb7226ba243e94a66014d562c6e54d60cc5700ca6e9278e9480146 → b6c6d996e102d53013c69f7fa92278902e3d1c361aca2e73d4c4f274b78b6f70;
  • app/scripts/testRootRoutePolicy.ts: b9d399e5bf42a8b8ba4a48cffd7d89edeb16bde52b7d89a5e9747ee8e2d666e4 → d0699da8dacafaac489017ed49ab04fb1d5e8b66f38f30b4f03c25c5d49110ad;
  • app/scripts/config/math-duration-split-spanning-tree-policy.json: f28ccfff4e897aa3d1a63202d3c29a8bc4a70722c8f12887faf529d0953d2e19 → d1142d7429fba05c0d928032e03c044751914951763897ef6cdc9939a81ed35d;
  • scripts/check_openai_plugin_review_freeze.test.mjs: 78cb10bdba7ebd4dff4b46ae61de7b6f4b97a8364ed541b14eec88da49588f41 → ecc9a8e4f8d218d4ae581c9a449319dddde33f80b456842d3450f0c904930d29;
  • scripts/run_package_consumer_smoke.py: 65221f914c70d3bcff2f89751c3c10f7c05f78338420f3826d592f0f4303e33c → c6ad4a80f0cbd4bbb57789a7ffdd24b89f55c6f658d5908973edd8107f798913;
  • contracts/curriculum-package/v1/profiles/full-standalone-v1.readiness-policy.json: c34e38f8d9b9d3697376cc46d475c3a47ef98d3936c4e8355fc6b0aa099835ee → 91712c26f31fcee7c32697c51f4da1b929f61742a0fac99a93833a0b08b93d18.

6.21 Eng begrenzte Ausnahme: bestehende lernende Person als Betreuungsklasse verknüpfen

Der Product Owner hat am 31. August 2026 nach der fachlichen Konzeption ausdrücklich beauftragt, die zuvor noch nicht aktive Einzelbetreuung mit einer bekannten bestehenden SkillPilot-ID tatsächlich umzusetzen. Freigegeben ist ausschließlich der unabhängige First-Party-Ablauf für eine verknüpfte, schreibgeschützte Betreuungsklasse:

  • Die Lehrkraft erzeugt aus der Kursorganisation eine sieben Tage gültige, einmal verwendbare Einladung für die bekannte SkillPilot-ID.
  • Die lernende Person muss die erwartete Anfrage mit genau dieser ID ausdrücklich bestätigen. Die Lehrkraft erhält anschließend eine opake Mitgliedschaft mit Leserechten auf alle dabei freigegebenen Fachprojektionen und deren Lernstände; die dauerhafte SkillPilot-ID und das rohe Personalisierungsdokument werden nicht an die Lehrkraftansicht ausgegeben.
  • Mathematik, Physik und weitere freigegebene Fächer bleiben eine gemeinsame Betreuungsklasse mit umschaltbaren Fachansichten. Eine geänderte Personalisierung wird erst nach erneuter Prüfung und einer ausdrücklichen Übernahme lokal wirksam. Lernziele, Planungen, Lernstände und die Personalisierung können über diesen Weg nicht verändert werden.
  • Offene Einladungen sind reload-sicher, ohne die permanente Lernenden-ID in den Browserzustand aufzunehmen. Antworten zu Lernständen werden vor der Anzeige fail-closed an Mitgliedschaft, Fach und Personalisierungsfingerprint gebunden; ein Fachwechsel löscht den vorherigen Anzeigezustand sofort.
  • Der neue API-Zweig ist durch Same-Site-/JSON-Prüfung, eine 8-KiB-Grenze, begrenzte IP-Zähler und no-store geschützt. Widerruf, Kursende und Lernstandslöschung beenden den Zugriff sofort. Terminale Datensätze werden höchstens 30 zusätzliche Tage aufbewahrt und danach im nächsten täglichen Löschlauf entfernt.
  • Der First-Party-Frontend- und Backend-Default ist aktiv. Der isolierte Curriculum-Package-Consumer bleibt explizit deaktiviert; sein HTTP-Smoke verlangt für den Teacher-Supervision-Zweig weiterhin 404.

Nicht freigegeben sind ein Zugriff ohne Zustimmung, die Übernahme oder Kopie der Lernenden-ID in die Klassenkarte, Schreibrechte auf Lernzustand oder Personalisierung, eine Erweiterung der eingereichten OpenAI-Tools oder eine Änderung von MCP/OAuth, Schemas, MCP-Apps-UI, Coach-, Session-, Identitäts-, Review-, Portal-, Fixture- oder Reviewartefakt-Semantik. Diese Ausnahme ist keine Deployment- oder Commit-Freigabe.

Die fortlaufende Hashkette der geschützten Backend-Konfiguration lautet:

  • backend/src/main/resources/application.yml: 15b120a2799148b10f9963fcae6fc998d4f1356b13489be9b6dc89c59161f591 → 83df7973dc6bea7457d8398b55a600b5de2a4349dd32dd6faccef37a488b2990 → 7377e3aa197f1156c3ca425b57ff08bde430a451ba1b5f0b27bc1359743c616f.

Die vollständige freigegebene Quell-, Test-, Konfigurations-, CI- und Package-Consumer-Dateimenge ist in contracts/openai/skillpilot-coach-v1/review-freeze.json einzeln hashgebunden. Zentrale Evidenz ist der reale Mathe-/Physik-Browsertest:

  • app/scripts/testTeacherSupervisionTrainerUi.ts: 5b78c3ef9e337eecc2050e71a1528581f0c89439e1182576dab18b2d7a7b007c.

Die Package-Consumer-Kette wird ohne Lockerung ihrer Isolation fortgeführt:

  • scripts/run_package_consumer_smoke.py: c6ad4a80f0cbd4bbb57789a7ffdd24b89f55c6f658d5908973edd8107f798913 → 4490199905bd4e87b1ed63cb7946545ffed16e26d06daad789e64b5c5c7bcffe;
  • contracts/curriculum-package/v1/profiles/full-standalone-v1.readiness-policy.json: 91712c26f31fcee7c32697c51f4da1b929f61742a0fac99a93833a0b08b93d18 → ec5dfbff03ddaccd89371abddc592d9e4a9b29c913115da7a9b8f74abcdeb941.

Die statische Freeze-Regression wurde ausschließlich um diese beiden autorisierten Ausnahmen ergänzt:

  • scripts/check_openai_plugin_review_freeze.test.mjs: ecc9a8e4f8d218d4ae581c9a449319dddde33f80b456842d3450f0c904930d29 → aba99cbfb96a6c3aeff0d96ba622aa6148d4a159d601d811fc19506f9d3e8086.

6.22 Eng begrenzte Ausnahme: Datenschutzhinweis zur Betreuung

Die Aktivierung aus Abschnitt 6.21 erfordert eine zutreffende öffentliche Datenschutzinformation. Freigegeben ist deshalb ausschließlich, den deutschen und englischen Datenschutzhinweis auf den 31. August 2026 zu datieren, eine eigene Sektion zur optionalen schreibgeschützten Betreuung einzufügen und die nachfolgenden Abschnittsnummern anzupassen. Beschrieben werden die ausdrückliche Freigabe, der begrenzte Leseumfang, die verarbeiteten Berechtigungs- und Mitgliedschaftsdaten, der nur lokale Alias, die Einladungsfrist, Widerruf und Kursende sowie die in Abschnitt 6.21 gebundene Löschfrist. Alle übrigen Datenschutz- und OpenAI-Verträge bleiben unverändert.

Der geschützte Text und seine Regression sind hashgebunden:

  • app/src/utils/privacyViewCopy.ts: 471f7cbdaf8c5a4db6ebddfad3ffebf54a8e2a44a253994f2ff258d02ba77f8b → 7bbdc2dd7f88ae7e68c17552dbe44d17b830d55d45c165b65c9b2436563f468b;
  • app/src/utils/privacyViewCopy.test.ts: 1f96b817433fa322c5f48e23f32c4b686e47af2bb63d9ba9e9d6ca245c8af295.

6.23 Eng begrenzte Ausnahme: passwortgeschützter lokaler Klassenexport

Der Product Owner hat am 31. August 2026 ausdrücklich beauftragt, das noch offene GitHub-Issue #2 selbstständig zu prüfen und, sofern weiterhin nötig, inhaltlich zu erledigen. Der aktuelle lokale Klassenexport enthielt weiterhin die Zuordnung von Klarnamen zu permanenten SkillPilot-IDs als unverschlüsseltes JSON. Freigegeben ist ausschließlich die Behebung dieses First-Party-Risikos:

  • Neue Exporte lokaler Klassen werden im Browser mit einer bestätigten, mindestens 15 Zeichen langen einmaligen Passphrase, PBKDF2-SHA-256 und authentifiziertem AES-256-GCM verschlüsselt. Die Passphrase wird konsistent Unicode-normalisiert und weder gespeichert noch protokolliert.
  • Der strikt versionierte Container bindet Zweck, KDF, Cipher und Payload über zusätzliche authentifizierte Daten, verwendet je Export neuen Salt und IV und begrenzt Datei, Metadaten und entschlüsselten Inhalt.
  • Alte Klartext-Klassenexporte bleiben ausschließlich als sichtbar gekennzeichneter Migrationsimport lesbar. Ein erkannter, aber ungültiger verschlüsselter Container darf niemals auf den Klartextpfad zurückfallen.
  • Verknüpfte Betreuungsklassen und opake Teacher-Memberships bleiben von diesem vollständigen Export- und Importpfad ausgeschlossen.
  • Der generische Dateiname enthält keinen Klassennamen. Die Dokumentation grenzt den Schutz heruntergeladener Dateien ausdrücklich von Browser- LocalStorage, entsperrten Geräten, Passwortverwaltung und pauschalen DSGVO-Zusagen ab.

Nicht freigegeben sind Änderungen am eingereichten OpenAI-Paket, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Coach-, Session-, Identitäts-, Review-, Portal-, Fixture- oder Reviewartefakt-Vertrag. Der bestehende ChatGPT-v1-Ablauf wird von der lokalen Trainer-Dateifunktion weder aufgerufen noch verändert. Eine Portalaktion ist nicht erforderlich.

Die fortlaufende Hashkette der bereits durch Abschnitt 6.21 geschützten Traineransicht lautet:

  • app/src/views/TrainerView.tsx: 1d2162e65072870f42a9edf355b1e8082e2c1349dce6b6da2c7578bcab16ec30 → 5bbe38b12464e4fa128f7299b2a462f791a8f286bff24b9847743877080721ee.

Zentrale Evidenz ist der reale Browser-Roundtrip mit verschlüsseltem Download, falschem und richtigem Passwort, Löschung, Wiederimport, Legacy-Migration und Abbruch ohne Download:

  • app/scripts/testTrainerClassFileUi.ts: 5ab65164ffdaa9f42e8de2b4bb7029fce442371fd91105486203dae02eaf488d.

Der Freeze-Guard bewahrt den bisherigen TrainerView-Hash als Vorgänger und prüft bei weiteren eng begrenzten First-Party-Ausnahmen nur den jeweils letzten lückenlos verketteten Supplemental-Hash. Gleichbleibende Bytes dürfen für eine zweite fachliche Ausnahme erneut gebunden werden; geänderte Bytes benötigen zwingend priorAuthorizedSha256. Damit wird kein früherer Prüfstand überschrieben und kein eingereichter OpenAI-Baseline-Hash umgedeutet.

6.24 Ablösende Ausnahme: lokale Direktansicht mit bekannter SkillPilot-ID

Der Product Owner hat am 31. August 2026 nach ausdrücklicher Abwägung eines abgeleiteten Betreuungsschlüssels entschieden, beim gegenwärtigen Identitätsmodell keine zusätzliche Zugriffssicherheit vorzutäuschen. Eine dauerhafte SkillPilot-ID ist bereits das Bearer-Geheimnis und der Vollzugriffsschlüssel des Lernendenzustands. Eine Einladung oder serverseitige Lehrer-Schüler-Verknüpfung würde diese Befugnis nicht begrenzen, wohl aber den Workflow verkomplizieren und zusätzliche Beziehungsdaten erzeugen.

Diese Entscheidung löst den in Abschnitt 6.21 freigegebenen Einladungs- und Mitgliedschaftsweg vollständig ab. Abschnitt 6.21 und die dazugehörige Datenschutzentscheidung in Abschnitt 6.22 bleiben als historische Hashnachweise erhalten, beschreiben aber nicht mehr das aktive Produktmodell. Freigegeben ist ausschließlich:

  • aus der Kursorganisation für genau eine bekannte bestehende SkillPilot-ID eine browserlokale Klasse mit lokalem Alias anzulegen;
  • das vollständige unterstützte Level-2-Personalisierungsbild der ausgewählten Fächer aus dem normalen Lernendenprofil zu übernehmen und Mathematik, Physik sowie weitere ausgewählte Fächer in derselben lokalen Karte umschaltbar darzustellen;
  • beim Öffnen Profil und Mastery mit cache: no-store ausschließlich über die normalen Lernenden-Endpunkte zu aktualisieren, ohne die geplanten Lernziele der lernenden Person zu lesen oder zu verändern;
  • die Oberfläche gegenüber Personalisierung, Fokus, lernendenseitiger Planung, Mastery und sonstigem Lernendenzustand funktional nur lesend zu halten. Ein separater lokaler Kursplan der Lehrkraft bleibt als reine Lehrerarbeitskopie editierbar;
  • die Direkt-ID-Klasse über den bereits freigegebenen passwortverschlüsselten Klassenexport aus Abschnitt 6.23 zu sichern. Der Export darf Alias, dauerhafte SkillPilot-ID und lokale Personalisierung enthalten und bleibt deshalb ein Bearer-Secret-Container;
  • die Funktion im First-Party-WebGUI zu aktivieren und im isolierten Package-Consumer sowohl bei der Anlage als auch bei Import und vorbereitetem Browserzustand fail-closed zu deaktivieren;
  • den bisherigen Einladungs-, Zustimmungs-, Workspace-, Kurs- und Mitgliedschaftsweg samt /betreuung-Ansicht und Teacher-Supervision-API zu entfernen;
  • die historischen Datenbanktabellen mit einer neuen vorwärtsgerichteten Liquibase-Migration in der Reihenfolge Mitgliedschaft → Kurs → Workspace zu löschen. Die historische Anlage-Migration 027 bleibt unverändert erhalten, damit bestehende Installationen reproduzierbar auf 028 aktualisieren können.

Insbesondere gibt es keine serverseitige Lehrer-Schüler-Beziehung, Einladung, Mitgliedschaft, Zustimmung, Widerrufsaktion oder besondere Retention dieses Workflows. „Nur lesend“ ist eine Grenze der Traineroberfläche und keine Einschränkung der SkillPilot-ID. Wer die ID kennt, besitzt weiterhin den normalen vollständigen Lernendenzugriff; Entfernen der lokalen Karte widerruft die ID nicht.

Keine alte Klassenkarte bleibt erhalten. Beim ersten Trainer-Laden werden alle Karten mit linked-supervision, linkedSupervision oder teacher-membership aus dem lokalen Klassenbestand entfernt. Gleichzeitig werden alte Workspace- und Pending-Credentials, ein betroffener Active-Class-Zeiger sowie alle unter der alten Karten-ID gespeicherten lokalen Kurspläne entfernt. Ein fehlerhafter anderer lokaler Eintrag darf diese Bereinigung nicht zurückrollen. Die Karten werden nicht konvertiert, und alte serververknüpfte Klassenimporte bleiben fail-closed abgewiesen. Eine gewünschte Betreuung wird mit der bekannten dauerhaften SkillPilot-ID neu angelegt.

Die fortlaufende Hashkette der geschützten Backend-Konfiguration kehrt nach der vollständigen Entfernung des Teacher-Supervision-Zweigs auf den zuvor bereits autorisierten Feedback-Konfigurationsstand zurück:

  • backend/src/main/resources/application.yml: 15b120a2799148b10f9963fcae6fc998d4f1356b13489be9b6dc89c59161f591 → 83df7973dc6bea7457d8398b55a600b5de2a4349dd32dd6faccef37a488b2990 → 7377e3aa197f1156c3ca425b57ff08bde430a451ba1b5f0b27bc1359743c616f → 83df7973dc6bea7457d8398b55a600b5de2a4349dd32dd6faccef37a488b2990.

Die zentrale Trainer-Hashkette wird ebenfalls fortgeführt:

  • app/src/views/TrainerView.tsx: 5bbe38b12464e4fa128f7299b2a462f791a8f286bff24b9847743877080721ee → 4350de4ced424cb364fb52379900808c46bd55051ebb95e412198277dfd00e11.

Die maßgebliche Browserregression bindet Direktanlage, Fächerwechsel, No-Store-Lesezugriffe, das Verbot von Lernendenwrites, die Löschung der alten Karte einschließlich ihrer lokalen Nebendaten und den Schutz gegen eine verspätete Wiederherstellung:

  • app/scripts/testExistingLearnerTrainerUi.ts: e1de40b61b30bbc415bb57699986506ababef6efafea05b2938d73328b1733a9.

Die isolierte Package-Consumer-Negativregression ist separat gebunden:

  • app/scripts/testExistingLearnerDisabledUi.ts: 3223a96db8c1a60e3be9389cd113330bc61a99946ca4e92ab2e4a8b57fa4ae21.

Die unveränderte historische Anlage und der vorwärtsgerichtete Rückbau sind zusammen mit dem echten Upgrade-Test gebunden:

  • backend/src/main/resources/db/changelog/changes/027-add-teacher-supervision.yaml: 5b63be9390b6fe93f655e2ffa920b6dafdfcb31266e3394232c12fdb8d23519b;
  • backend/src/main/resources/db/changelog/changes/028-drop-teacher-supervision.yaml: 5012717fa21639108f039a8a54109703732e139fc783c0e0ffec47021f2be84f;
  • backend/src/test/java/com/skillpilot/backend/migration/TeacherSupervisionRemovalMigrationTest.java: 1f11dc621d873a02f2c6f2b7ef15a181281bd3d140e08f77692496cd3fef27b1.

Der vollständige Quell-, Test-, Konfigurations-, CI-, Migrations- und Dokumentationsumfang ist in review-freeze.json einzeln hashgebunden. Entfernte Dateien sind dort als endgültige Tombstones geführt. Das gilt auch für die frühere zentrale Evidenz app/scripts/testTeacherSupervisionTrainerUi.ts; ihr letzter autorisierter Hash 5b78c3ef9e337eecc2050e71a1528581f0c89439e1182576dab18b2d7a7b007c bleibt in der Kette erhalten, während der Checker ihre Abwesenheit und das Verbot einer späteren Wiedereinführung prüft.

Der eingereichte OpenAI-V1-Vertrag, sein First-Party-ChatGPT-Start, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Sessions, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert. Deshalb ist weder ein Zurückziehen noch eine erneute Einreichung im OpenAI-Portal erforderlich.

6.25 Ablösende Klarstellung: Datenschutz der lokalen Direkt-ID-Ansicht

Der Product Owner hat am 31. August 2026 entschieden, die durch Abschnitt 6.24 überholte Datenschutzbeschreibung aus Abschnitt 6.22 vollständig durch die tatsächliche lokale Datenverarbeitung zu ersetzen. Die historische Hashkette bleibt erhalten; die aktive deutsche und englische Information nennt jetzt ausdrücklich:

  • lokale Speicherung von Klassenname, Alias, dauerhafter SkillPilot-ID und einer bereinigten Personalisierungskopie im Browser der Lehrkraft;
  • direkte Profil- und Mastery-Lesezugriffe über die normalen Lernenden-Endpunkte ohne serverseitige Lehrerklasse, Berechtigung oder Mitgliedschaft;
  • die funktional nur lesende Grenze gegenüber Lernendendaten sowie die davon getrennte editierbare lokale Lehrerplanung;
  • den Vollzugriffscharakter der dauerhaften ID und die Tatsache, dass lokales Löschen sie weder ungültig macht noch Kopien anderswo entfernt; und
  • den möglichen Inhalt eines bewusst erzeugten passwortverschlüsselten Klassenexports sowie die Begrenzung dieses Schutzes auf die verschlüsselte Datei und ihr geheim gehaltenes Passwort.

Entfallen sind Aussagen über Einladungsfrist, Zustimmung, Mitgliedschaft, Widerruf, Kursende und eine besondere 30-tägige Retention, weil keine solchen Serverdatensätze mehr erzeugt werden.

Der geschützte Text setzt seine eingereichte Baseline und die historische Zwischenfreigabe lückenlos fort:

  • app/src/utils/privacyViewCopy.ts: 471f7cbdaf8c5a4db6ebddfad3ffebf54a8e2a44a253994f2ff258d02ba77f8b → 7bbdc2dd7f88ae7e68c17552dbe44d17b830d55d45c165b65c9b2436563f468b → 4ab1f49f2339b8e2ef3e758e4fb3bedf33e37ae8ca792382c1c79dbc2ae0bab0;
  • app/src/utils/privacyViewCopy.test.ts: 1f96b817433fa322c5f48e23f32c4b686e47af2bb63d9ba9e9d6ca245c8af295 → ce06b90403e5b4501908044e9ca6f0954c2176f0cd9478e8ee976a597971b47f.

Die Klarstellung ändert keine andere Rechtszusage und keinen eingereichten OpenAI-Vertrag oder Reviewablauf. Eine Portalaktion ist nicht erforderlich.

6.26 Eng begrenzte Ausnahme: atomare Restziele als lokale Planbasis

Der Product Owner hat am 1. September 2026 die Korrektur der lokalen Kursplanung für eine Direkt-ID-Klasse beauftragt. Als Planumfang gilt nicht ein ungefilterter Landschaftsbaum und auch nicht der bereits beherrschte Anteil, sondern exakt der aktuelle Cockpit-Fokus der lernenden Person: gezählt werden nur projizierte atomare target-Ziele; verplant wird daraus nur die beim erstmaligen Erfassen noch offene Teilmenge. Ein Cockpit-Stand von 259 atomaren Zielen mit 206 beherrschten Zielen ergibt deshalb eine Planbasis von 53 offenen Zielen.

Freigegeben ist ausschließlich:

  • ein cache: no-store-Leseendpunkt unter der gewöhnlichen SkillPilot-ID-Zugriffsgrenze, der für die angeforderte Landschaft den effektiven Level-3-Fokus, dieselbe Zielprojektion, Atomdefinition, Mastery-Aufbereitung und Schwelle wie das Cockpit verwendet;
  • die einmalige Speicherung von Fokus-IDs, atomaren Umfangs-IDs, offenen atomaren Ziel-IDs, Summen und Erfassungszeitpunkt in der browserlokalen Lehrerplanung. Diese Planbasis bleibt über Bearbeiten und Rückgängig unveränderlich;
  • die Begrenzung aller Planblöcke auf diese offene atomare Teilmenge sowie eine kumulativ konsistente Ganzzahlrundung der fälligen Zielzahlen. Raten werden höchstens mit einer Nachkommastelle angezeigt;
  • eine echte Planrevision bei der Migration alter Direkt-ID-Pläne ohne Planbasis. Dadurch werden frühere Unterrichtsbestätigungen nicht fälschlich auf den neu bestimmten Umfang übertragen;
  • das Weglassen der lernendenabgeleiteten Planbasis aus einem Kursplanexport. Freitext der Lehrkraft wird dagegen unverändert exportiert; Oberfläche, Exporthinweis und Datenschutzhinweis benennen diese Grenze ausdrücklich.

Der Endpunkt erzeugt keine Lehrer-Schüler-Beziehung, schreibt weder Personalisierung noch Fokus, Planung oder Mastery der lernenden Person und ändert den in Abschnitt 6.24 festgelegten Bearer-Secret-Charakter der SkillPilot-ID nicht.

Die bestehenden Hashketten werden wie folgt fortgeführt:

  • app/src/utils/privacyViewCopy.ts: 471f7cbdaf8c5a4db6ebddfad3ffebf54a8e2a44a253994f2ff258d02ba77f8b → 7bbdc2dd7f88ae7e68c17552dbe44d17b830d55d45c165b65c9b2436563f468b → 4ab1f49f2339b8e2ef3e758e4fb3bedf33e37ae8ca792382c1c79dbc2ae0bab0 → f8f847135a35a483d84a3d191e2b8e24e63a7f3cf47f8e42ba4a361a3a9bf435;
  • app/src/utils/privacyViewCopy.test.ts: ce06b90403e5b4501908044e9ca6f0954c2176f0cd9478e8ee976a597971b47f → 07119f62c03bd32bb8f19cf8a61b1d6b097ac8a56e60969b4f22bb1baf304877;
  • app/src/views/TrainerView.tsx: 4350de4ced424cb364fb52379900808c46bd55051ebb95e412198277dfd00e11 → 2508e4353a4f4d0e354e8bba6184f15101b402e24d20d85bb226ebcaecc6259b;
  • app/scripts/testExistingLearnerTrainerUi.ts: e1de40b61b30bbc415bb57699986506ababef6efafea05b2938d73328b1733a9 → 5ffeac2acbe876435cce35c6999a99e4144f238b0d9edf1f9750871ec6d8daac.

Der vollständige Quell-, Test-, CI- und Dokumentationsumfang ist in review-freeze.json einzeln hashgebunden. Der eingereichte OpenAI-V1-Vertrag, sein First-Party-ChatGPT-Start, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Coach-, Session- und Identitätssemantik, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unverändert. Eine Portalaktion ist deshalb nicht erforderlich.

6.27 Eng begrenzte Korrektur: vollständiger personalisierter Planungsraum

Der Product Owner hat am 1. September 2026 die Planungsgrenze aus Abschnitt 6.26 ausdrücklich korrigiert: Planbar ist der vollständige personalisierte Fachumfang (Level 2). Der veränderliche Cockpit-Fokus (Level 3) darf den Auswahlraum nicht einschränken. Ein Fokus auf Sekundarstufe I darf deshalb personalisierte Ziele der Sekundarstufe II im Kursplan nicht ausblenden.

Diese Freigabe ersetzt ausschließlich die in Abschnitt 6.26 beschriebene Fokusbindung und bewahrt dessen übrige Grenzen. Freigegeben ist:

  • der bestehende cache: no-store-Leseendpunkt liefert für die angeforderte Fachlandschaft alle deduplizierten, atomaren target-Ziele der vollständigen Level-2-Personalisierung und deren beim Erfassen noch offene Teilmenge;
  • der Endpunkt nimmt keinen scopeGoalId entgegen, liest oder speichert keine Level-3-Fokus-IDs und bleibt unter der gewöhnlichen SkillPilot-ID-Zugriffsgrenze ohne Lehrer-Schüler-Beziehung oder Schreibzugriff;
  • die Kursplanauswahl wird aus der reinen Personal-/Composition-Projektion vor jeder routen- oder fokusbezogenen Cockpit-Projektion aufgebaut;
  • ein konkreter Planblock zählt nur die Atomziele unter seinem tatsächlich ausgewählten Ziel oder Cluster. Sein Todo ist die Schnittmenge dieses Blockumfangs mit der unveränderlich erfassten offenen Teilmenge. Der Nenner der Plananzeige ist die deduplizierte Vereinigung der tatsächlich verplanten Blockumfänge, nicht der gesamte personalisierte Fachumfang;
  • ein Sek-I-Block mit 259 Atomzielen und 206 beim Erfassen gemeisterten Zielen zeigt daher weiterhin 53 offene von 259 Zielen. Zusätzliche personalisierte Sek-II-Ziele werden erst durch einen eigenen Sek-II-Block Teil der Planmetriken;
  • bestehende fokusgebundene lokale Baselines bleiben lesbar, werden vor der nächsten Lernabschnittsplanung aber einmalig in einer echten Planrevision auf die neue fachweite Baseline migriert. Dadurch gelten frühere Unterrichtsbestätigungen nicht irrtümlich für den erweiterten Umfang. Die neue Baseline bleibt über Bearbeiten und Rückgängig unveränderlich.

Die bestehenden Hashketten werden dabei lückenlos fortgeführt:

  • app/src/utils/privacyViewCopy.ts: f8f847135a35a483d84a3d191e2b8e24e63a7f3cf47f8e42ba4a361a3a9bf435 → 1424f94d5087a368e45d064dcfde718a4f0958464a32e376f66dddee6fdeb7f4;
  • app/scripts/testExistingLearnerTrainerUi.ts: 5ffeac2acbe876435cce35c6999a99e4144f238b0d9edf1f9750871ec6d8daac → f98613ce922ead852f5a3ae0d0bd9eb2c50712f559e127ed7bf6fdbfad531a85;
  • app/src/views/TrainerView.tsx: 2508e4353a4f4d0e354e8bba6184f15101b402e24d20d85bb226ebcaecc6259b → d308f123474aa23064ec6389c16279066a95016797f4f210cb5880190c118e2b.

Der vollständige Quell-, Test- und Dokumentationsumfang dieser Korrektur ist in review-freeze.json einzeln hashgebunden.

Atomdefinition, Mastery-Schwelle, ganzzahlige Sollrundung, Ein-Nachkommastellen-Raten, Exportgrenze und die funktional nur lesende Lehreroberfläche bleiben gegenüber Abschnitt 6.26 unverändert. Die Korrektur ändert keinen eingereichten OpenAI-Vertrag, First-Party-ChatGPT-Start, MCP/OAuth-, Tool-, Schema-, MCP-Apps-UI-, Coach-, Session-, Identitäts-, Reviewfall-, Portal-, Fixture- oder Reviewartefakt-Vertrag. Eine Portalaktion ist nicht erforderlich.

6.28 Eng begrenzte Korrektur: Composition-Ziele im Kursplan erhalten

Die in Abschnitt 6.27 freigegebene vollständige Level-2-Planung wurde am 1. September 2026 innerhalb desselben Product-Owner-Auftrags korrigiert. Eine ausschließlich für die Cockpit-Darstellung bestimmte Phasen-Normalisierung hatte in der zusammengeführten hessischen G9-GK+LK-Komposition 15 gültige atomare LK-/Q4-Ziele aus dem Kursplanindex entfernt. Die unveränderte strenge Baseline-Prüfung erkannte diese Abweichung anschließend fail-closed und verwarf den gesamten Planblock.

Freigegeben ist ausschließlich:

  • der Kursplan baut seinen auswählbaren Level-2-Baum direkt aus der backend-autoritativ projizierten Personal-Curriculum-Komposition auf;
  • der normale Cockpitbaum behält seine bisherige Darstellungsnormalisierung;
  • die strenge CP-BASELINE-GOAL-Prüfung bleibt unverändert und verwirft weiterhin jeden Plan, dessen Baseline-Ziel im Planungsindex fehlt;
  • ein Browser-Regressionsfall bildet die zusammengeführte G9-GK+LK-Struktur mit einem Q4-LK-Atom unter einem E-markierten kanonischen Zweig nach und prüft Auswahl, 4-von-4-Umfang und tatsächliches Speichern des synthetischen Sek-II-Planblocks;
  • ein H2-Service-Regressionsfall belegt, dass die 15 bekannten Composition-Targets in der autoritativen Fachbaseline enthalten bleiben.

Die bestehenden Hashketten werden lückenlos fortgeführt:

  • app/scripts/testTrainerCoursePlanUi.ts: 5a4bdb263c6297a2bdd4add9d958b817484de2b06f35882167db65d9efd0a5cd → 5f0e079f5debb1a17b6e621d0a333b0462a6c562af7fa51ec99dc0a3e89b9320;
  • app/src/views/TrainerView.tsx: d308f123474aa23064ec6389c16279066a95016797f4f210cb5880190c118e2b → 17cda4583d728d546513c875edb8cf95a0cffdff69893c436eb8e5ec9fa9682c;
  • backend/src/test/java/com/skillpilot/backend/service/LearnerPlanningScopeServiceTest.java: 333f0d3dcdea429a8039b0f5597c52c06eb31f6f7c751250ccf2cfdee77769e7 → f018453aaff183a29f47f1233c42e860771a1043cc9bc33bab158ec378920db6.

Die Korrektur ist auf die aktuelle First-Party-WebGUI-Kursplanung begrenzt. Fokusunabhängigkeit, atomare Zählung, no-store-Lesesnapshot, Direct-ID-Bearer-Grenze und das Modell ohne serverseitige Lehrer-Schüler-Beziehung bleiben unverändert. Der eingereichte OpenAI-V1-Vertrag, First-Party-ChatGPT-Start, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Coach-, Session- und Identitätssemantik, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unberührt. Eine Portalaktion ist nicht erforderlich.

6.29 Eng begrenzte Korrektur: sichtbares Bearbeitungsformular im Kursplan

Der Product Owner hat am 1. September 2026 mit dem Hinweis „der Bearbeiten Knopf ist tot“ die Korrektur der vorhandenen Bearbeitungsaktion in der lokalen First-Party-Kursplanung beauftragt. Der Klick-Handler öffnete und befüllte das Formular bereits korrekt, fügte es aber weit oberhalb des sichtbaren Lernabschnitts in den eigenen Scrollbereich ein. Browser-Scroll-Anchoring hielt die angeklickte Karte im Bild, sodass das geöffnete Formular unsichtbar blieb.

Freigegeben ist ausschließlich:

  • das bereits vorhandene Formular beim Anlegen oder Bearbeiten in den sichtbaren Kursplanbereich zu scrollen und den Tastaturfokus auf seine Überschrift zu setzen;
  • Lernziel, Titel und Datumswerte weiterhin unverändert aus dem gewählten Planabschnitt zu übernehmen;
  • einen Browser-Regressionsfall zu ergänzen, der aus einer heruntergescrollten Lernabschnittskarte Bearbeiten aufruft, Sichtbarkeit, Fokus und die vorausgefüllten Werte prüft und anschließend ohne Mutation abbricht.

Unverändert bleiben Speicherung, lernendenabgeleitete Planbasis, Abdeckung, Rückgängig, Export, Berechnungssemantik, Direct-ID-Grenze und alle übrigen Trainerabläufe. Der eingereichte OpenAI-V1-Vertrag, First-Party-ChatGPT-Start, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Coach-, Session- und Identitätssemantik, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unberührt. Eine Portalaktion ist nicht erforderlich.

Die beiden betroffenen Dateien setzen ihre bestehenden Hashketten fort:

  • app/src/components/CoursePlanPilotView.tsx: 42e09e55e1dce8bff7f5a7093763cb6e9fe84950f171b15557212c4d24ba5ba1 → c2ab3b62b60836ebbd39caa63779a0c7aaebc25934074e0e1d6e23961356f424;
  • app/scripts/testTrainerCoursePlanUi.ts: 5f0e079f5debb1a17b6e621d0a333b0462a6c562af7fa51ec99dc0a3e89b9320 → e04c477cfb6121f8daa540a8ac862258a08c2861b30d2122672d22eeb4fca025.

6.30 Eng begrenzte Korrektur: kanonische Atomarität in der Kursplanung

Der Product Owner hat am 1. September 2026 die Korrektur des gemeldeten Physik-Planungsfehlers ausdrücklich mit der zusätzlichen Vorgabe beauftragt, dass die Lösung fachübergreifend gelten muss. Die reale Ursache lag nicht in fehlenden Physikzielen: Direkte goalEntry-Referenzen können kanonische Cluster für die Lernendendarstellung als opake Blätter projizieren. Der Backend-Projektionspfad kennzeichnet diese Präsentationskopien temporär als atomar. Der Planungssnapshot hatte deshalb sieben Physik-Übungs- und Abiturcluster als Atome gezählt, obwohl ihre unveränderten strukturellen Definitionen Cluster bleiben. Die strenge Browserprüfung verwarf daraufhin auch einen gültigen Sek-I-Abschnitt mit 118 echten Atomzielen.

Freigegeben ist ausschließlich:

  • der read-only Planungssnapshot bestimmt die Atomarität jedes personalisierten target-Ziels aus seiner unveränderten strukturellen Definition und niemals aus einer darstellungsbedingt opaken Projektionskopie;
  • direkte opake Composition-goalEntry-Cluster bleiben Nicht-Atome und gelangen nicht in scopeAtomicGoalIds oder openAtomicGoalIds;
  • der Kursplanauflöser überspringt exakt solche opaken Nicht-Atom-Cluster als null zählende Präsentationsgeschwister, damit ihre echten atomaren Geschwister in einem übergeordneten Planabschnitt planbar bleiben;
  • gewöhnliche leere Cluster, fehlende Ziele, Zyklen und Baseline-Abweichungen bleiben unverändert fail-closed;
  • fachneutrale Utility-Regressionen prüfen diese Abgrenzung, und ein realer H2-Servicefall prüft das kanonische Atom-Invariant für Mathematik und Physik sowie die zusammengeführte hessische GK+LK-Physikprojektion, ohne eine feste fachliche Gesamtzahl als Vertragswert einzufrieren.

Die korrigierte hessische Physik-Planbasis enthält damit für GK, LK und GK+LK nur noch 393, 460 beziehungsweise 462 kanonische Atome statt 399, 466 beziehungsweise 469 Zielen einschließlich der fälschlich gezählten Cluster. Diese Zahlen sind Regressionsevidenz des aktuellen Layer-A-Stands, kein eingefrorener Curriculumvertrag.

Die bestehenden Hashketten werden lückenlos fortgeführt:

  • app/src/utils/localTeacherCoursePlan.test.ts: 3436f6ea0174e7e2a2ce29467761050e706b1bc5641be92acadb74c988debafc → ff52502a72612c8f696a064b6caa64ea1b85ef9416fa07a0a21b6d55bdaef0e7;
  • app/src/utils/localTeacherCoursePlan.ts: 90427e7b2961d395e0ca40fb5b4f24fdc3ed13d60b25c66b3a8b7ff00a97adaf → fac1c4031f182ea7cbf35c7bbefe1e8d615a855a7f643e5eec25afbefc03f800;
  • backend/src/main/java/com/skillpilot/backend/service/LearnerService.java: b94b78fbec5e75a715c91cfbc3f1feeec7475119165761777b6c64646e05f6ac → f0efaa113759834f84bb5ce04e758f2574d42608ed288290dde25f51c0f99afc;
  • backend/src/test/java/com/skillpilot/backend/service/LearnerPlanningScopeServiceTest.java: f018453aaff183a29f47f1233c42e860771a1043cc9bc33bab158ec378920db6 → 0d9ba6dca1a5d7a50f2ac1d87d8e799a327af98dfe08d01c49194c5a968965b7.

Fokusunabhängigkeit, unveränderlicher no-store-Level-2-Snapshot, Direct-ID-Bearer-Grenze, das Modell ohne serverseitige Lehrer-Schüler-Beziehung und die übrige Kursplansemantik bleiben unverändert. Der eingereichte OpenAI-V1-Vertrag, First-Party-ChatGPT-Start, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Coach-, Session- und Identitätssemantik, Reviewfälle, Portalwerte, Fixtures und Reviewartefakte bleiben unberührt. Eine Portalaktion ist nicht erforderlich.

6.31 Eng begrenzte Ausnahme: persönliche Fachzeitpläne und Planmodus

Der Product Owner hat am 1. September 2026 den lernendenseitigen Gegenpart zur lokalen Lehrkraftplanung sowie dessen selbstbestimmte Nutzung im Cockpit ausdrücklich freigegeben. Diese Ausnahme gilt ausschließlich für die aktuelle First-Party-WebGUI und den gemeinsam genutzten kanonischen Lernendenzustand:

  • Unter der dauerhaften SkillPilot-ID kann pro personalisierter Fachlandschaft höchstens ein revisionsgebundener persönlicher Fachzeitplan liegen. Er folgt Export, Rückwärtsimport, Aufbewahrung und Löschung des Lernendendatums.
  • Im Cockpit bereitstellen kopiert erst nach Bestätigung einen lokalen Lehrkraftplan. Der Server bindet den Schreibvorgang fail-closed an Lernenden- und Fachkontext, erwartete Revision, aktuelle Personalisierung und Graph-Fingerprint. Neu hinzukommende Ziel-IDs müssen offen sein; bereits im persönlichen Plan enthaltene IDs dürfen beim bestätigten Ersetzen zur Plankontinuität erhalten bleiben. Es entsteht weder eine serverseitige Lehrer-/Klassenbeziehung noch eine automatische Synchronisierung.
  • Das Cockpit liest die Planlage mit no-store, zeigt je Fach den kumulativen Stand bis heute und startet das erste Planziel nur durch eine bewusste Aktion. Kalenderfortschritt allein schreibt niemals Fokus, aktives Ziel oder Mastery.
  • Nach Plan lernen ist standardmäßig false, ausschließlich in der First-Party-WebGUI schaltbar und jederzeit widerrufbar. Solange der Modus aktiv ist, bleibt der allgemeine sequenzielle Autopilot auch ohne nutzbaren Plan unterdrückt.
  • Ein automatischer Handoff nach bestätigtem Abschluss ist nur zulässig, wenn das abgeschlossene Ziel zu mindestens einem aktuell gültigen gespeicherten Plan gehört. Genau ein fälliger, nach requires zulässiger Kandidat aus einem Plan mit diesem Abschlussanker hat Vorrang. Nur wenn kein solcher Ankerkandidat existiert, darf genau ein Kandidat über alle gültigen Pläne hinweg folgen. Mehrere Anker- oder Nicht-Ankerkandidaten, ausschließlich veraltete oder ungültige Pläne, kein Plan sowie fehlende oder blockierte fällige Ziele scheitern fail-closed: Der bestehende Fokus bleibt und es wird kein neues aktives Ziel gewählt; das abgeschlossene Ziel darf regulär aus dem aktiven Zustand entfernt werden. Teil-Mastery behält das laufende Ziel.
  • Moduswechsel und erfolgreiche Übergaben verwenden die bestehende coachStateRevision-Invalidierung. Der Plan selbst wird dem OpenAI-V1-Coach weder als Feld noch als neue Fähigkeit zugänglich gemacht.

Die Ausnahme hat bewusst eine eng begrenzte beobachtbare Wirkung auf den eingereichten V1-Zustandspfad: Hat eine lernende Person den Modus zuvor in der First-Party-WebGUI aktiviert, kann der unveränderte V1-Zustands- oder Abschlussresponse einen anderen bereits existierenden kanonischen Fokus oder activeGoal zurückgeben; ebenso bleibt die generische Autopilot-Auswahl dann unterdrückt. Das ist keine neue V1-Fähigkeit und darf nicht als „ohne Zustandswirkung“ beschrieben werden. Der V1-Coach kann den Modus weder aktivieren noch Pläne anlegen, importieren, ersetzen oder anzeigen.

Unverändert bleiben OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Prepared Message, First-Party-ChatGPT-Start, Identität, Locale und Session-Lifecycle. Die eingereichte Review-Fixture bleibt ohne Plan und mit followLearningPlans=false; Reviewfälle, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte ändern sich nicht. Deshalb ist keine Portalaktion erforderlich. Sollte der Planmodus später über den Coach angeboten oder die Review-Fixture darauf umgestellt werden, wäre diese Bewertung neu vorzunehmen.

Die geschützte Laufzeitdatei setzt ihre Kette fort:

  • app/src/views/LearnerView.tsx: f590240f9be5366032e081f39e9ad5617e7b3f9183ecb1291c3ab5af84416258 → dfc7fd5f131af9a556f25b87ad57b7a3d20809ede2275b8007ebb299152ca82b.

Der zentrale Cockpit-Regressionsfall app/scripts/testLearnerPlanCockpitUi.ts ist mit 95223838f0b322020432149eced7328a5bcc9fdf68df90cd5893bab2d4d87251 gebunden. Alle weiteren 50 Quell-, Migrations-, Test-, Workflow- und Dokumentationsdateien einschließlich ihrer lückenlosen Vorhashketten sind in review-freeze.json einzeln festgeschrieben.

6.32 Eng begrenzte Ausnahme: Datenschutzhinweis zum persönlichen Plan

Der Product Owner hat am 1. September 2026 außerdem die notwendige wahrheitsgemäße Ergänzung des deutschen und englischen First-Party-Datenschutzhinweises freigegeben. Er nennt nun den persönlichen Fachzeitplan und followLearningPlans als unter der SkillPilot-ID gespeicherte Daten, die bestätigte Direct-ID-Kopie aus dem lokalen Lehrkraftplan, die Open-only-/Kontinuitätsregel beim Ersetzen, die unveränderte Vollzugriffsgrenze der dauerhaften ID sowie die oben beschriebene lernendenseitige Autorisierung, Ankerpriorität, Fail-closed-Auswahl und Autopilot-Unterdrückung.

Diese zweite Ausnahme ändert ausschließlich die bereits verlinkte First-Party-Datenschutzansicht, ihren Copy-Test und die übereinstimmende Sicherheitsdokumentation. Sie ändert keine Runtime, URL, Portalmetadaten, OpenAI-Schnittstelle, Review-Fixture oder Reviewartefakte; eine Portalaktion ist nicht erforderlich.

Die Hashketten lauten:

  • app/src/utils/privacyViewCopy.ts: 1424f94d5087a368e45d064dcfde718a4f0958464a32e376f66dddee6fdeb7f4 → 84f888394310125ff1bdde6b0c7c35b881091eb3c22f50e6abb0cfe5534f6efc;
  • app/src/utils/privacyViewCopy.test.ts: a34ce448d4d43d0aa91e6380e6905e375f6ed986e5db27942577f90e82a42a27 → 2940f594232022f90c3d562290c2fcbddf6bb85eda454d140e5d5c7d34f5388e;
  • docs/security/data-privacy.md: 58e57689fc6a2329a53e1664df1de18971bf5a6498605723f0edca0d28683803 → 179f3acac510a36bffc7eb1c206df715f7cf714550f8f5d920f61c17b249aa08.

6.33 Eng begrenzte Ausnahme: Curriculumwahl pro lokalem Kurs

Der Product Owner hat am 1. September 2026 ausdrücklich freigegeben, die bislang vorgelagerte globale Curriculum- und Qualitätsfilterwahl aus dem Trainer-Einstieg zu entfernen und vollständig in den jeweiligen lokal gespeicherten Kurs zu verlagern. SessionSetup öffnet nach der Rollenwahl direkt die Kursorganisation; auch ein direkter Aufruf von /trainer entfernt den nicht mehr verwendeten Browser-Key skillpilot_trainer_landscape.

Jede ClassSession wählt und speichert nun ihr eigenes Root-Curriculum, Fach und die anwendbare Filterkonfiguration. Closure und Anzeigenamen werden pro Kurs-Root geladen. Ein bestehender Lernender wird nur lokal übernommen, wenn sein persönliches Curriculum genau einem Root zugeordnet werden kann; fehlende, widersprüchliche oder gemischte Roots brechen vor dem Speichern fail-closed ab. Abgebrochene oder überholte Profil-, Root-Closure- und ID-Erzeugungsanfragen werden verworfen, damit kein später lokaler Save mehr ausgelöst wird.

Die lokale Kursliste bleibt auch bei einem nicht verfügbaren Runtime-Katalog oder einer fehlerhaften Curriculumübersicht erreichbar. Scheitert erst die Closure eines geöffneten Kurses, erhält die Lehrkraft eine verständliche, wiederholbare Fehlermeldung und kann ohne Änderung der gespeicherten Kursdaten zur Kursliste zurückkehren.

Die Ausnahme wirkt ausschließlich auf die First-Party-Trainerorganisation. Lernenden- und Explorer-Auswahl, browserlokale Kursinhaberschaft und die Abwesenheit einer serverseitigen Lehrkraft-Klasse-Beziehung bleiben unverändert. Ebenso unverändert bleiben der eingereichte ChatGPT-Starthandler, Prepared Message und Session-Semantik sowie sämtliche OpenAI-Package-, MCP/OAuth-, Tool-, Schema-, Annotations-, Instruktions-, Ressourcen- und MCP-Apps-UI-Bytes, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte. Deshalb ist keine Portalaktion erforderlich.

Die geschützte Laufzeitdatei setzt ihre vollständige Kette fort:

  • app/src/components/SessionSetup.tsx: df4ce08ff28f0a88e70752c1d05373ec37eab1e8af3e59334ab1a73a41169140 → 5f54736d03ec2ba4860894ecc4f13867d0b82728bad1953ef6958bfd63bccf1d.

Der zentrale Browser-Regressionsfall app/scripts/testSessionSetupCompletionUi.ts ist über afb66331e9bf1707195b1389d28bfe09839a9c3a130800bc207d6ed9602426fe → ba721f824f9e7ef45cca37e8261b09513e9cba486cfdb61cbe12d87fa4812713 gebunden. Die weiteren 20 Quell-, Copy-, Fixture-, Test- und Konzeptdateien sind in review-freeze.json einzeln festgeschrieben. Dabei setzen app/src/locales/de.ts, app/src/locales/en.ts und app/scripts/testRootRoutePolicy.ts ausdrücklich ihre früheren Copy-Clarification-Hashes fort; der Checker prüft auch diesen Übergang fail-closed statt frühere Freigaben rückwirkend zu überschreiben.

6.34 Eng begrenzte Ausnahme: solide Lehrer- und Schüler-Kursplanung

Der Product Owner hat am 1. September 2026 ausdrücklich beauftragt, die bereits freigegebene Kursplanung und ihre Ansicht für Lehrkräfte und Lernende gemeinsam solide und gut bedienbar zu machen. Diese Ausnahme härtet nur die vorhandenen First-Party-Abläufe; sie führt weder eine serverseitige Lehrer-Schüler-Beziehung noch eine automatische Plansynchronisierung ein.

Für die browserlokale Lehrkraftplanung ist ausschließlich freigegeben:

  • jeden lokalen Plan an Klasse, Curriculum-Root, Fach und den vollständigen aktuellen Level-2-Kurskontext zu binden und beim Löschen einer Klasse alle zugehörigen Kontext- und Legacy-Planvarianten zu entfernen, ohne Pläne anderer Klassen anzutasten;
  • die Klassenkarten tastaturbedienbar zu machen und ihre eigenständigen Bearbeiten-, Export- und Löschaktionen zugänglich zu beschriften;
  • gespeicherte und noch nicht gespeicherte Entwürfe sichtbar zu unterscheiden;
  • Im Cockpit bereitstellen nur für einen weiterhin vollständig berechenbaren Lernplan mit offenen Baseline-Atomen zuzulassen, den konkreten Sperrgrund zu zeigen und eine geöffnete Bestätigung bei jeder relevanten Planänderung zu verwerfen und beim Bestätigen erneut fail-closed zu prüfen;
  • Unterrichtsabdeckung mit einem expliziten Datum bis einschließlich heute zu erfassen, Zukunftsdaten abzulehnen und die getrennte Attestierung weiterhin ausdrücklich als Stand bis heute zu führen; und
  • Lehrkraftdaten in Europe/Berlin zu berechnen und bei Berliner Mitternacht sowie bei erneuter Sichtbarkeit der Seite zu aktualisieren.

Für den persönlichen Fachzeitplan im Lernenden-Cockpit ist ausschließlich freigegeben:

  • die heute neu fälligen, davon bereits beherrschten und heute noch offenen Ziele getrennt vom kumulativen Rückstand bis heute darzustellen;
  • als Vorschau ausschließlich den kanonischen Titel eines tatsächlich fälligen und voraussetzungsseitig zulässigen nächsten Ziels anzuzeigen und Fachkarten nach Handlungsdringlichkeit stabil zu sortieren;
  • Planmodus und den dadurch pausierten allgemeinen Autopilot in einer zentralen Einstellung verständlich darzustellen, ohne den gespeicherten Autopilot-Wert stillschweigend umzuschreiben; und
  • nach einem fehlgeschlagenen Refresh sichtbare Daten als veraltet zu kennzeichnen und jede Fortsetzungsaktion bis zu einem erfolgreichen Reload fail-closed zu sperren.

Lehrkraft-Publikation und Lernenden-Read-Model verwenden nun dieselbe kumulative Ganzzahlrundung. Lernblöcke werden deterministisch nach Beginn, Ende, ursprünglicher Reihenfolge und ID geordnet. Die Zuordnung der offenen Atomziele respektiert direkte und effektiv geerbte Voraussetzungen über eine stabile topologische Sortierung; Zyklen, unvollständige Baselines und sonstige nicht berechenbare Zustände bleiben fail-closed. Kalenderfortschritt allein schreibt weiterhin weder Fokus noch aktives Ziel oder Mastery.

Die geschützte Lernendenansicht setzt ihre lückenlose Kette fort:

  • app/src/views/LearnerView.tsx: dfc7fd5f131af9a556f25b87ad57b7a3d20809ede2275b8007ebb299152ca82b → 85c5f1bc093d6111fbfb7b51f8903dd6fb3a93a063e5c8d3a44b22538c8944d4.

Zentrale weitere Hashketten sind:

  • app/src/views/TrainerView.tsx: 9a780af40ef83610d3c5b5bddab58c8db04e0c89569b3016f8c7a2c7d579e517 → 67820493aae77176a5959cd35c9e73f2c5b93d565f991c77e03036f10236d9b5;
  • app/src/components/CoursePlanPilotView.tsx: 884f89bd679f53d35310ea1151c385ecb91b36f40d56cb5d427938711bc8a4ec → 1fdc72ce0def7ca09cdf993b15d755aec35ed26c8dda90f75d74bd18b3e28d35;
  • app/src/utils/localTeacherCoursePlan.ts: fac1c4031f182ea7cbf35c7bbefe1e8d615a855a7f643e5eec25afbefc03f800 → 24115a036ea49ed0be9f0bcb1d96ece5381f026be42ba15f9864f16994fcdc90;
  • app/src/utils/learnerCoursePlanPublication.ts: 27364171a2a4ddda1b63dfceab1a3ac96bef0cb410aa6e3098a0cb4be40681d9 → 1e78901e87d6894045aceac0c3961b5cb2508a877b9cfac23e2c208d68095a8a;
  • backend/src/main/java/com/skillpilot/backend/service/LearnerLearningPlanService.java: 13a5d46a5fdbe67909ddbad407ad03b516ac41c703f359de03c25599f38e2772 → 64b38f0c1f25b6fccdfa1409cd293839ddfacef8a616ae40bd060ec94fe04ac8.

Die neue kontextgebundene Plan-ID-Logik und ihr fokussierter Test sind mit f17991db7d524169b48f4a3b8586352f65b3f7caf981907981b4eb01d4cd673a beziehungsweise 4b7f70c6b880be922111181a8a631db50adf436d15c9fc0e5464f3a76e64a449 gebunden. Die zentrale Cockpit-Browserregression setzt ihre Kette über 95223838f0b322020432149eced7328a5bcc9fdf68df90cd5893bab2d4d87251 → bf69dd9e1225051f531995f7c81a98c8b98e6cab2464c01bed536dd2066aeaf9 fort. Alle 29 betroffenen Quell-, Copy-, Fixture-, Test- und Konzeptdateien sind in review-freeze.json einzeln und mit ihren vorherigen autorisierten Hashes gebunden.

Die dauerhafte SkillPilot-ID bleibt Bearer-Geheimnis und Vollzugriffsschlüssel. Der Lehrkraftplan bleibt browserlokal; die Übernahme in den persönlichen Plan bleibt eine ausdrücklich bestätigte Einwegkopie. Planmodus bleibt standardmäßig aus und für Lernende widerrufbar. OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Prepared Message, ChatGPT-Start, Session-, Identitäts- und Locale-Vertrag, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist weder ein Zurückziehen noch eine erneute Einreichung im OpenAI-Portal erforderlich.

6.35 Dauerhafte Wirkungsgrenze: evolvierbare öffentliche Landingpage

Der Product Owner hat am 1. September 2026 ausdrücklich freigegeben, die Informationsarchitektur und Präsentation der öffentlichen First-Party- Startseite fortlaufend weiterzuentwickeln. Diese Freigabe ist keine allgemeine Freigabe des bisher in SessionSetup mit der Landingpage vermischten Startvertrags. Sie führt stattdessen eine dauerhaft prüfbare Wirkungsgrenze ein.

Evolvierbar sind ausschließlich diese drei Präsentationsdateien:

  • app/src/components/PublicLandingPanels.tsx;
  • app/src/components/PublicLandingFooter.tsx;
  • app/src/utils/publicLandingCopy.ts.

Sie bilden eine capability-arme Präsentationsinsel. Zulässig sind ihre öffentliche Information, Reihenfolge, visuelle Gestaltung, responsives Layout, semantische Navigation und lokalisierte Präsentationscopy. Die Insel erhält nur Sprache, die weiterhin semantisch geschützte Access-Status-Aussage sowie die drei fest gebundenen Einstiegscallbacks Lernen, Kursorganisation und Explorer. Direkte Rollenrouten sind ebenso unzulässig wie ein direkter Plugin-Einstieg.

Der Freeze-Checker prüft diese Insel unabhängig von ihren Bytes fail-closed:

  • nur die ausdrücklich erlaubten Präsentationsimporte und exakt die freigegebenen Props dürfen vorkommen;
  • Netzwerkzugriffe, Browserpersistenz, Cookies, Browserfenster und globale Browserfähigkeiten sind ausgeschlossen;
  • direkte Provider- oder API-URLs, dynamisches Nachladen und rohe HTML- Injektion sind ausgeschlossen;
  • Routerzustand und imperative Navigation bleiben außerhalb der Insel; nur deklarative öffentliche Link-Navigation ist zulässig;
  • Coach-, Chat-Start-, Claude-, Terms-, SkillPilot-ID-, Lernendendaten-, Profil- und Sessionimporte sind ausgeschlossen; und
  • die drei Rollenaktionen müssen aus der hashgebundenen SessionSetup-Kompositionsnaht stammen.

Die Access-Status-Wahrheit bleibt ein semantischer Vertrag, obwohl sie in der Landing-Präsentation erscheint. Der unveränderlich gebundene Browservertrag prüft ihre exakte deutsche und englische Aussage, den Vergleichslink, die drei Callback-Einstiege über das gemeinsame Terms-Gate, die öffentlichen Routen, Zugänglichkeit und die mobile wie breite Darstellung. Eine spätere reine Landing-Änderung darf ihre Präsentation verändern, aber nicht diese Aussage entfernen, verfälschen oder den gemeinsamen Einstieg umgehen.

SessionSetup.tsx bleibt als Controller und stabile Kompositionsnaht hashgebunden. Seine Kette wird einmalig fortgeführt:

  • app/src/components/SessionSetup.tsx: 5f54736d03ec2ba4860894ecc4f13867d0b82728bad1953ef6958bfd63bccf1d → d78a8e0aebae245fee604c8b8102f26cd37ffb96542267ce668f8b38a31eebc6.

Der stabile Browservertrag ist als neue Evidenz gebunden:

  • app/scripts/testPublicLandingContractUi.tsx: 904ee9e68c32c92e78782999c15f142393c09c97a0506c371911b1ce6ef99c5e.

Bestehende Test- und CI-Ketten werden vollständig fortgesetzt:

  • .github/workflows/ci.yml: 50965b7b10fab102463817766d866d2beed01e2d52737752e3d79cf73c421ae5 → 6324e43b893dd036c5c4449a77b3ec7a10dc81727e7d26071f2df6271c2494d5;
  • app/package.json: eb9c13d41dc76c094b08b62c722cae344cfa2411f31951a038026e7d5c527f46 → 5fcc8ac9a8b9a6577401e5dfb2521080f2297214eec1958fd0c93fe96aa2fdbd;
  • app/scripts/fixtures/sessionSetupCompletionUi.tsx: bf443605173a8b700a5f794d49ee50a27751b8b0e90e1caa10f8399d9ffad3aa → 4c63fc282067198ab65feaa682cb668a30a688b40020bc606261c5f373335aea;
  • app/scripts/testClaudeV1StartUi.tsx: 5e833c8525919254db82e3e6d127c00911ec4a8d10408f8216a51d109f66fc8f → a4c9b885e378ac5f91b823d0791951ef17ac45a6d0d0cf64f3def6cd9311eb6c;
  • app/scripts/testPublicOverviewUi.tsx: fe66f2148c198663aa671ce1a1eea4ccdf57b23bfdb4f20287c0c42a832ef757 → 4ab7eb14cf8154a617baee7d49db3d7b4090f035cde7c13a2818f0f2c9270b4b;
  • app/scripts/testSessionSetupCompletionUi.ts: ba721f824f9e7ef45cca37e8261b09513e9cba486cfdb61cbe12d87fa4812713 → a8fc5ce9b8a25a55c6723b5a87310272918a32038345c4f7971d2cf298a05b4f.

Die drei Dateien der Präsentationsinsel werden absichtlich nicht hashgebunden. Ihr Schutz besteht in der deklarierten Import-, Prop- und Effektgrenze sowie im unveränderlichen Browservertrag. Eine weitere reine Landing-Präsentationsänderung benötigt daher keine neue Hashausnahme. Jede Erweiterung ihrer Fähigkeiten, Props, Imports oder Startwirkung sowie jede Änderung an SessionSetup, Access-Status, Terms/ID, ChatGPT-/Claude-Handlern, Prepared Message oder Session-Lifecycle bleibt dagegen gesperrt und benötigt eine neue ausdrückliche Product-Owner-Entscheidung.

OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Prepared Message, ChatGPT-/Claude-Startwirkung, Terms-/ID- und Sessionvertrag, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist weder ein Zurückziehen noch eine erneute Einreichung im OpenAI-Portal erforderlich.

6.36 Eng begrenzte Ausnahme: konsistente Landing-Interaktionen

Der Product Owner hat am 1. September 2026 ausdrücklich beauftragt, die vier öffentlichen Landing-Panels visuell und interaktiv an der bestehenden Überblickskarte auszurichten. Die doppelte sichtbare Zeile So startest du in 5 Minuten. entfällt, weil derselbe Quickstart bereits als eindeutig beschriftete Aktion im Lernenden-Panel vorhanden ist.

Freigegeben ist ausschließlich:

  • die Aktionspillen der drei Landing-Panels auf Geometrie, Typografie, Icon-plus-Text-Aufbau und Fokusdarstellung der bestehenden Überblicksaktionen abzustimmen;
  • Jetzt lernen bei gleicher Geometrie als primäre blaue Aktion sichtbar hervorzuheben;
  • alle vier gleichrangigen Panelüberschriften als semantische zweite Ebene unter dem Seiten-h1 auszuzeichnen und ihnen ein dekoratives, für Assistenztechnologien ausgeblendetes Icon zu geben;
  • Hover und Fokus innerhalb aller Panels mit demselben ruhigen Rand-, Schatten- und Überschriftenrhythmus darzustellen und die Bereiche semantisch durch Blau für Lernen, Grün für Überblick, Violett für Kursplanung und Amber für Curricula zu unterscheiden; und
  • den primären Lernbutton sowie Footer-Ausgangs-, Hover- und Fokuszustände kontrastfest darzustellen; und
  • ausschließlich die redundante sichtbare Hero-Zeile aus SessionSetup zu entfernen. Die weiterhin für den Dokumenttitel verwendete lokalisierte Copy und die Quickstart-Route bleiben erhalten.

Der erweiterte Browservertrag prüft Deutsch und Englisch auf Mobil- und Desktopbreite: alle sieben Landing-Aktionen besitzen sichtbares Icon und Text, entsprechen der Pillenhöhe der Überblickskarte, Jetzt lernen bleibt klar primär, alle vier Panels besitzen genau eine h2-Überschrift mit dekorativem Icon, die vier Interaktionsakzente bleiben unterscheidbar, und die doppelte Hero-Zeile ist nicht sichtbar. Routen, drei Callback-Einstiege, Access-Status und gemeinsames Terms-Gate werden unverändert weitergeprüft.

Die geschützte Kompositionsdatei setzt ihre Kette fort:

  • app/src/components/SessionSetup.tsx: d78a8e0aebae245fee604c8b8102f26cd37ffb96542267ce668f8b38a31eebc6 → b1ce7a490494df6a72dff7369ad8573dbf1b3b56e7b7643109d621bcf94fe8fa.

Die außerhalb der evolvierbaren Präsentationsinsel liegende Überblickskomponente setzt ihre Kette fort:

  • app/src/components/SkillPilotOverviewCard.tsx: 16329baefd5fbbf5d733253508a57661c67e0ba5d49583f6cec119fe5695a77a → 905dd38a60374992ce368260d13dc44d446c263b5ee9585eae0eee9d947ec055.

Der zentrale Browservertrag setzt seine Evidenzkette fort:

  • app/scripts/testPublicLandingContractUi.tsx: 904ee9e68c32c92e78782999c15f142393c09c97a0506c371911b1ce6ef99c5e → 0b1fe8ddcd5b39bd43ae54f9579899524730e01ce79058a452e41afeb0f8348a.

Die drei bereits freigegebenen Dateien der evolvierbaren Präsentationsinsel bleiben weiterhin absichtlich ungehasht. Die neue Ausnahme erweitert weder ihre Props noch ihre Fähigkeiten. Access-Status, Terms-/ID-Gate, ChatGPT- und Claude-Handler, Prepared Message, Session- und Lernzustandssemantik, OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.37 Eng begrenzte Ausnahme: Panel-Farben und CI-Stabilität

Der Product Owner hat am 1. September 2026 die visuelle Differenzierung der vier öffentlichen Landing-Panels präzisiert und zugleich ausdrücklich beauftragt, den Stand zu pushen und die CI fehlerfrei herzustellen.

Die Aktionspillen behalten ihre gemeinsame Geometrie, Typografie und Icon-plus-Text-Sprache, übernehmen aber nun die semantische Farbe ihres jeweiligen Panels: Blau für Lernen, Grün für Überblick, Violett für Kursplanung und Amber für Curricula. Jetzt lernen verwendet ein helles Sky-Blau mit dunkler Schrift statt eines optisch schweren dunklen Blaus. Der Browserregressionsvertrag prüft die vier unterscheidbaren Aktionspaletten, gleiche Farben innerhalb eines Panels, unveränderte Pillengeometrie sowie mindestens WCAG-AA-Textkontrast; der primäre Button muss zusätzlich als heller Farbkörper erhalten bleiben.

Die außerhalb der evolvierbaren Präsentationsinsel liegende Überblickskomponente und ihre Evidenzketten werden dafür eng fortgesetzt:

  • app/src/components/SkillPilotOverviewCard.tsx: 905dd38a60374992ce368260d13dc44d446c263b5ee9585eae0eee9d947ec055 → e2969e96649285c9e831be8a3c787164a09af403f1ea6848929108ccefc724eb;
  • app/scripts/testPublicLandingContractUi.tsx: 0b1fe8ddcd5b39bd43ae54f9579899524730e01ce79058a452e41afeb0f8348a → 26526b8ed2be687089055d8ed7b59f34ed4c7213e649096e6bcf46ea8bd39301;
  • app/scripts/testPublicOverviewUi.tsx: 4ab7eb14cf8154a617baee7d49db3d7b4090f035cde7c13a2818f0f2c9270b4b → 49282210b0f6343660a17add95ab9c0cd87d365bef20ae02072de88ecc7d8b39.

Zwei CI-Regressionen werden ausschließlich in ihren Tests stabilisiert. Der Lernzielbuch-Linktest prüft die bereits freigegebene Promotionsentscheidung an ihrem neuen Präsentationsort statt weiterhin in SessionSetup; die Kursbereichsregression klickt den semantisch benannten Kurs-Button und beobachtet während des vollständigen Öffnungsvorgangs, dass niemals ein fachfremder Sek-I-Knoten aufblitzt. Die geprüfte Produktwirkung bleibt dabei unverändert:

  • app/src/views/WorkbenchView.test.ts: 97e2c090d00859dd0389dbccdfe226b187293bcbac6d0ada1cddd4ae313a59d6 → a4dc3fa0280b4f4f26119ce0aee05e18568b5c7eefb7441cabafd30333194cc5;
  • app/scripts/testTrainerGymnasiumScopeUi.ts: ea7fafb68df3aac09a12d56423913f51609df9b469426fac8b8f677f9b37bac2 → 5bd0514f46dee4a2e8b5e3d590eac9c38b3b1b0e654a04d87249fffe3f2d7308.

Die erste CI-Ausführung hat außerdem offengelegt, dass für LearnerDataDTO.java irrtümlich der Hash einer lokalen Datei mit gemischten Zeilenenden statt der bereits eingecheckten kanonischen LF-Bytes gebunden war. Die Datei wird inhaltlich nicht geändert; ausschließlich die Bindung wird auf die vom Repository und von GitHub Actions tatsächlich ausgecheckten Bytes korrigiert:

  • backend/src/main/java/com/skillpilot/backend/api/LearnerDataDTO.java: fdb2f5db5ea3cf4d61a9c863d3677181976ddb1d9e1ff3da6029cc64b08eb67a → e45e90c12dc708dd0880c17ef270ee06c3de141f984ab14b7a0f7906770e0b7c.

Die Landing-Präsentationsinsel erhält keine neue Fähigkeit und keine neuen Props oder Imports. Access-Status, Terms-/ID-Gate, ChatGPT- und Claude-Handler, Prepared Message, Session- und Lernzustandssemantik, OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.38 Eng begrenzte Ausnahme: vollständiger LF-Hashabschluss

Die zweite CI-Ausführung hat am 1. September 2026 dieselbe historische Zeilenendenabweichung noch für PreferencesRequest.java offengelegt. Ein anschließender vollständiger Vergleich aller 181 aktuell autorisierten Einzeldateien mit ihren Git-HEAD-Blobs bestätigt, dass dies die einzige noch verbleibende Worktree-/Repository-Abweichung ist.

Die Datei wird inhaltlich nicht geändert. Ausschließlich die append-only Freeze-Bindung wird vom früher erfassten lokalen Mixed-EOL-Hash auf die bereits eingecheckten und von GitHub Actions ausgecheckten kanonischen LF-Bytes fortgesetzt:

  • backend/src/main/java/com/skillpilot/backend/api/PreferencesRequest.java: 0b40c8bb2fdac8ceeba587dabf49274239d10d1df2c32cf2ba0c95659bc2c6e5 → 59c172ba67a18adf2bf6914409264329a9cede50dbba7fe62a7f571e06546a23.

Der systematische Blobvergleich ist damit vollständig grün. Es ändern sich weder Java-Quellsemantik noch Runtime-, Session-, Identitäts- oder Lernzustandsverhalten. OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.39 Eng begrenzte Ausnahme: deterministische Kursplan-UI-Evidenz

Der anschließende GitHub-Lauf hat am 1. September 2026 einen rein testseitigen Zeitablauffehler in der bereits autorisierten Kursplan-Browser-Evidenz sichtbar gemacht. Der Test prüfte unmittelbar mit count(), obwohl diese Playwright-Abfrage nicht auf das zum deaktivierten Button gehörende Erklärungselement wartet. Unter der Last des vollständigen CI-Laufs wurde deshalb einmal der deaktivierte Button vor seiner stabilen Erklärungsanzeige beobachtet; die unveränderte Landingpage-Prüfung, der Kursplan selbst und alle vorherigen Produktprüfungen waren grün.

Die Ausnahme erlaubt ausschließlich, in app/scripts/testTrainerCoursePlanUi.ts zuerst auf das bereits vorhandene Element course-plan-publish-disabled-reason zu warten und anschließend seine bestehende aria-describedby-Bindung sowie den unveränderten deutschen Text exakt zu prüfen. Produktcode, UI-Text und Kursplanverhalten ändern sich nicht. Der Test wurde lokal dreimal hintereinander erfolgreich ausgeführt.

Die bestehende Hashkette wird append-only fortgesetzt:

  • app/scripts/testTrainerCoursePlanUi.ts: c4c63a5fbe70aea4562b582de6644b0baee79c83e74708bdb9795b364a48136b → b28cdee8db212e2f1d8fa468420744a0d031a1d33aa1abacd6da701f1e2a59f1.

OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Runtime-, Session-, Identitäts- und Lernzustandsverhalten, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.40 Eng begrenzte Ausnahme: ruhige Landing-Aktionshierarchie

Der Product Owner hat am 1. September 2026 die zuvor freigegebenen farbigen Ruheflächen der öffentlichen Landing-Aktionen ausdrücklich als zu intensiv bewertet. Die vier Panel-Farben sollen weiterhin Orientierung geben, aber erst dezent über Icons sowie klar bei Hover, Tastaturfokus und aktivem Zustand sichtbar werden.

Freigegeben ist ausschließlich:

  • alle sekundären Aktionspillen im Ruhezustand auf dieselbe neutrale, themeabhängige Fläche, Rand- und Textfarbe zurückzuführen;
  • die Panelidentität im Ruhezustand nur über die kleinen Sky-, Emerald-, Violet- und Amber-Icons zu erhalten und die jeweilige Flächen-, Rand- und Textreaktion erst bei Hover oder Fokus einzublenden;
  • Jetzt lernen ohne farbige Füllung nur durch eine zurückhaltende Sky-Kontur, Sky-Schrift und einen kleinen Schatten als primäre Aktion zu kennzeichnen; und
  • den geschlossenen Überblicks-Disclosure-Button ebenfalls neutral zu halten, während sein geöffneter Zustand als bewusst aktiver Zustand eine schwache Emerald-Fläche behalten darf.

Die Browserregression prüft weiterhin Deutsch und Englisch auf Mobil- und Desktopbreite. Sie bindet nun die gemeinsame neutrale Ruhepalette, vier unterscheidbare Icon- und Hover-Akzente, den kontrastfesten zurückhaltenden Primärzustand sowie den neutralen geschlossenen und den eindeutig aktiven geöffneten Disclosure-Zustand. Geometrie, Typografie, sichtbare Texte, Routen, Callback-Einstiege, Access-Status und Terms-/ID-Gate bleiben unverändert.

Die außerhalb der evolvierbaren Präsentationsinsel liegende Überblickskomponente und ihre Evidenzketten werden dafür eng fortgesetzt:

  • app/src/components/SkillPilotOverviewCard.tsx: e2969e96649285c9e831be8a3c787164a09af403f1ea6848929108ccefc724eb → dff105280ff290e77f08ff7cadf043983bcc999dc78f3d10f88a9be478d7e8f8;
  • app/scripts/testPublicLandingContractUi.tsx: 26526b8ed2be687089055d8ed7b59f34ed4c7213e649096e6bcf46ea8bd39301 → 9afd169e2d90398cb693661c9fed5c6af51182e0c9a0190d738e1297a89e038d;
  • app/scripts/testPublicOverviewUi.tsx: 49282210b0f6343660a17add95ab9c0cd87d365bef20ae02072de88ecc7d8b39 → a923b4bb4fb2828b8f7b9ea3dc406c1ac9b7c68b95f775e29577af6af2f1b54a.

Die evolvierbare Landing-Präsentationsinsel erhält keine neue Fähigkeit und keine neuen Props oder Imports. Access-Status, Terms-/ID-Gate, ChatGPT- und Claude-Handler, Prepared Message, Session- und Lernzustandssemantik, OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.41 Eng begrenzte Ausnahme: direkter Einstieg in die Kursorganisation

Der Product Owner hat am 1. September 2026 ausdrücklich beauftragt, den redundanten Trainer-Zwischenschritt nach Kursorganisation öffnen zu entfernen. Der bisherige Bildschirm wiederholte lediglich den lokalen Speicherhinweis und dieselbe Aktion, bevor er den bereits bestehenden Trainer-Start auslöste.

Freigegeben ist ausschließlich:

  • bei bereits akzeptierten aktuellen Nutzungsbedingungen den Landing-Button unmittelbar mit dem bestehenden leeren Trainer-Kontext zu starten;
  • bei erstmaliger Nutzung nur das gemeinsame Terms-Gate zu zeigen und nach dessen erfolgreicher Speicherung unmittelbar denselben Trainer-Start auszuführen; und
  • den redundanten Trainer-Hinweis mit seinem zweiten gleich beschrifteten Submit-Button vollständig aus SessionSetup zu entfernen.

Die Änderung bleibt fail-closed: Schlägt die Speicherung der Zustimmung fehl, wird keine Trainer-Sitzung gestartet. Der Start übergibt weiterhin exakt eine leere SkillPilot-ID, eine leere Landschaft und die Rolle trainer, entfernt den obsoleten globalen Trainer-Landschaftsschlüssel und öffnet /trainer ohne l-Parameter. Für Lernende und Explorer bleibt der Setup-Ablauf unverändert; ein React-Effekt wird bewusst nicht verwendet, damit Strict Mode keinen doppelten Start auslösen kann.

Die geschützte Kompositionsdatei und ihre Browservertrags-Evidenz setzen ihre Hashketten eng fort:

  • app/src/components/SessionSetup.tsx: b1ce7a490494df6a72dff7369ad8573dbf1b3b56e7b7643109d621bcf94fe8fa → b9fd9dc1e56fc0227a481958f5ce77682f520bafdbd3d2582c990d6889e50a39;
  • app/scripts/testSessionSetupCompletionUi.ts: a8fc5ce9b8a25a55c6723b5a87310272918a32038345c4f7971d2cf298a05b4f → 1ad7fb1822176dfbd89b512e5b4b236703704e89b32536568d17d56f5693f57d.

Die Landing-Präsentationsinsel, ihre Props und Fähigkeiten, Access-Status, Terms-Version und -Text, SkillPilot-ID-Gate, ChatGPT- und Claude-Handler, Prepared Message, sonstige Session- und Lernzustandssemantik, OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.42 Eng begrenzte Ausnahme: kalendertagsfeste Kursplan-Browser-Evidenz

Der Product Owner hat am 2. September 2026 die ausschließlich testseitige Korrektur des beim Datumswechsel sichtbar gewordenen Kursplan-CI-Fehlers freigegeben. Die Browser-Evidenz verwendet feste Plandaten vom 1. bis 13. September 2026 und prüft den dazu gehörenden Sollstand vom 1. September, bezog ihren Berechnungsstichtag aber irrtümlich aus dem jeweils aktuellen Berliner Kalendertag. Am 2. September zeigte das unveränderte Produkt deshalb korrekt 12 von 53 fällig, während der Test weiterhin den fixturegebundenen Wert 6 von 53 fällig erwartete.

Freigegeben ist ausschließlich, in app/scripts/testExistingLearnerTrainerUi.ts unmittelbar nach dem Erzeugen der Playwright-Seite und vor dem Laden der Fixture die Browserzeit auf 2026-09-01T06:00:00.000Z festzusetzen. Damit stammen Plandaten, Berechnungsstichtag und Assertions aus demselben unveränderlichen Testszenario. Produktcode, UI-Text und Kursplanverhalten werden nicht geändert.

Die bestehende Hashkette wird append-only fortgesetzt:

  • app/scripts/testExistingLearnerTrainerUi.ts: 616fc99ac1c6565afa1ca9e7dae2922cd96f49533ed9f802e471b4e862cf22bd → 92a79bedfaa8307feeef4b134cfb48db1a6d7f0a701e300f32e6ba61422a661f.

OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Runtime-, Session-, Identitäts- und Lernzustandsverhalten, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.43 Eng begrenzte Ausnahme: J8-Test an fortgeschriebenes Layer A binden

Der Product Owner hat am 2. September 2026 im Rahmen der ausdrücklich beauftragten CI-Stabilisierung die rein testseitige Anpassung des bestehenden J8-Regressionsfalls an das fortgeschriebene öffentliche Curriculum freigegeben. Layer A enthält nach der fachlich begründeten Teilung eines zusammengesetzten Lernziels und der Ergänzung einer neunten Jahrgangsprüfung nun 55 statt 53 atomare J8-Ziele. Die sechs im Testszenario noch offenen Prüfungsaufgaben bleiben unverändert; die neue neunte Aufgabe wird wie die bereits erledigten Aufgaben 3 und 7 als abgeschlossen markiert.

Freigegeben ist ausschließlich, in backend/src/test/java/com/skillpilot/backend/service/LearnerServiceTest.java die erwartete aktuelle Layer-A-Zielanzahl auf 55 zu setzen und die neue Prüfungsaufgabe 9 in die vorhandene Menge abgeschlossener Prüfungsaufgaben aufzunehmen. Die weiterhin geprüfte Zustandssemantik bleibt unverändert: Nach Abschluss aller sonstigen Ziele sind exakt dieselben sechs Aufgaben auswählbar.

Die bestehende Hashkette wird append-only fortgesetzt:

  • backend/src/test/java/com/skillpilot/backend/service/LearnerServiceTest.java: 709d6e320153ac1fdeabae425a292c3fd409d68a3542b7353d7b77016d27a792 → 2582fea64da9b7858d3a4c8930c1b0ad93af98499e51cb88cf3701860ded637d.

Es ändern sich keine Produktquellen und kein Runtime-, Session-, Identitäts- oder Lernzustandsverhalten. OpenAI-Package, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.44 Eng begrenzte Ausnahme: Marketplace-first-Anleitung für die Claude-Beta

Der Product Owner hat am 3. September 2026 nach der verifizierten Veröffentlichung des persönlichen Git-Marketplace und der bestätigten Migration beider kontrollierten Benutzer freigegeben, die ersteigene /plugins-Anleitung vom bisherigen Datei-Upload auf den Marketplace als empfohlenen Installations- und Updateweg umzustellen. Der Direkt-Upload bleibt als ausdrücklich bezeichneter Fallback erhalten.

Die Freigabe umfasst ausschließlich:

  • die deutsche und englische Fünf-Schritte-Anleitung für Claude Web;
  • die gebundene öffentliche Repository-Adresse mit einer reinen navigator.clipboard.writeText-Aktion für genau diese Adresse;
  • weiterhin sichtbare Alters-, Tarif- und Testumfang-Hinweise, auch wenn der optionale Download-Index ausfällt;
  • die zugehörigen /plugins-Metadaten und fokussierten Regressionstests; und
  • eine eigenständige, kandidat- und revisionsgebundene Product-Owner- Entscheidung im Claude-Marketplace-Release-Modell.

published_pending_acceptance, alle noch offenen Marketplace-Evidenzen und openPublicBetaReady = false bleiben unverändert. Die Guide-Entscheidung behauptet weder Clean-Account-, Refresh-, Legal-, Support- noch Exact-Client-Abnahme und ist kein Anthropic-Listing. Der Marketplace-Validator leitet nur den kontrollierten First-Party-Anleitungsweg aus verifiziertem Repository plus dieser Entscheidung ab; die vollständige Veröffentlichung bleibt weiterhin an alle bisherigen Evidenzen gebunden.

Die bestehenden Hashketten werden append-only fortgesetzt:

  • app/src/views/PluginCatalogView.tsx: 548aa480c96d76d1a2f9403c4631a74d6d891565c62a0b5197fd59e4092a8e5a → 73c36c7ebb58ec0b6ea66f4c0fa73298e5107c06fbd98b04e0a82209138e9100;
  • app/src/utils/claudePluginPublication.test.ts: f6efd1d17ff352bbd4943d967577eab475a636515949d159505b066a7936a6c2 → fc0e79cc9121445db85a2016b36f520681e9f82c762d506a285404106cabafb8;
  • app/src/App.tsx: 8781db5376bbeaa2376a12b689135e881f53ae89e4d61141d64130dbec83db87 → 86acdb6813795da03dd42b0c0080862de0d0fd099cd5f9ead07c1e6952566306;
  • app/scripts/testRootRoutePolicy.ts: 6a96e4a628f181cb4e7cd324a1c2a29baac3da5f54fafc9fff3c3ee4475752c4 → 2fb61a14854858a783aabdda372fd85b802cba5d95e02469c3d1decbf4438f3d.

Neu gebunden werden die eng zugehörigen Hilfs-, Release- und Dokumentationsdateien mit folgenden Hashes:

  • app/src/utils/claudePluginPublication.ts: b9d15d02d84a44d1208c5e02157139f64171c364e92462b223f477fd9725a9ce;
  • ai/claude/plugin/skillpilot-coach-v1/release/marketplace-publication.json: 6db56658c333bcf5fc688bcdb274dd74a7d3df957f97e28793672a091da7e965;
  • scripts/claude_marketplace_release.mjs: fbd8ce38fe2678d29ec64673f8a03910105168129ec7aa8b98ed6e9a22f10974;
  • scripts/claude_marketplace_release.test.mjs: f280584ca40ec97332034cfba99c54993265bca10441a02dedb0a0883b1702f4;
  • docs/deploy/claude-personal-marketplace-release.md: da96db3618002fb4016e4a785527aea16f3a47823b914151027bad84628f04b0.

ChatGPT- und Claude-Start-Handler, Prepared Messages, Session-, Identitäts- und Lernzustandssemantik, OpenAI- und Claude-Package-Bytes, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Reviewfälle und -fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.45 Eng begrenzte Ausnahme: gemeinsame Fachplanung mit automatischer Lernführung

Der Product Owner hat am 4. September 2026 nach Prüfung des vorgeschlagenen Ablaufs ausdrücklich freigegeben, persönliche Mathematik-, Physik- und weitere Fachpläne in der First-Party-WebGUI wie eine gemeinsame wirksame Planung zu führen. Die frühere Vorgabe eines separaten manuellen Erststarts und einer bei mehreren geeigneten Fachplänen ausbleibenden Auswahl aus Abschnitt 6.31 wird nur für diesen genau beschriebenen Ablauf ersetzt; alle übrigen Grenzen der persönlichen Fachzeitpläne bleiben bestehen.

Für die lokale Lehrkraftplanung ist ausschließlich freigegeben:

  • alle vorbereiteten und bereits im Cockpit vorhandenen, noch gültigen Fachpläne sichtbar zu einem vollständigen Aktivierungssatz zusammenzustellen;
  • Revision, Personal-Curriculum-Fingerprint, Blockfokus, Atomziele und Voraussetzungen jedes enthaltenen Fachplans vor dem ersten Schreiben zu prüfen und den gesamten Satz anschließend in einer Transaktion zu speichern oder vollständig zu verwerfen;
  • bei fehlenden gültigen Altplänen im Aktivierungsrequest fail-closed vor jeder Mutation abzubrechen, damit kein verborgener Plan später als Übergabekandidat weiterwirkt;
  • mit derselben ausdrücklich bestätigten Vordergrundaktion Planung wirksam machen den weiterhin lernendenseitig pausierbaren Modus Nach Plan lernen einzuschalten und unmittelbar das erste fällige, offene und nach requires zulässige Atomziel auszuwählen; und
  • die bestehende Einzelfachkopie nur als nachrangige Aktualisierung auszuweisen; sie ist keine gemeinsame Aktivierung und startet für sich kein Planungspaket.

Für das Lernenden-Cockpit ist ausschließlich freigegeben:

  • alle gültigen Fachpläne in einer kompakten gemeinsamen Heute-Ansicht zu zeigen und openDueThroughToday einschließlich Rückstand als fachübergreifende offene Anzahl auszuweisen, ohne daraus einen Tempo- oder Leistungsvergleich zwischen Fächern zu berechnen;
  • das laufende Lernziel mit einer einzigen Weiterlernen-Aktion sichtbar in den Fokus zu bringen und Fachdaten erst auf Wunsch aufzuklappen; auf dem mobilen Learner-Layout bleibt der benannte 44-Pixel-Menüschalter räumlich oberhalb der Heute-Karte und überdeckt weder Überschrift noch Aktion;
  • einen ausdrücklichen Fachwechsel anzubieten, der das unvollständige bisherige Ziel ohne Mastery-Änderung parkt und nur nach erneuter Prüfung von Revision, Fingerprint, Fälligkeit und Frontier ein Ziel des gewählten Fachs aktiviert;
  • beim Cockpit-Start genau dann einen idempotenten Reconcile-POST auszuführen, wenn Planmodus und Fachpläne vorhanden sind, aber kein aktives Ziel besteht; ein laufendes Ziel wird dabei nie verdrängt; und
  • nach bestätigtem Abschluss zunächst einen geeigneten Kandidaten aus einem Plan mit Abschlussanker zu wählen und andernfalls gültige Fachpläne deterministisch nach Blockende, Blockbeginn, Fach-ID, Ziel-ID und Plan-ID zu ordnen. Gibt es keinen zulässigen fälligen Kandidaten, wird kein Ersatzziel erfunden.

Aktivierung, Reconcile und Fachwechsel sind ausschließlich ausdrückliche First-Party-Vordergrundwrites unter der bekannten SkillPilot-ID. Kalenderzeit, GET-Requests, Forecasts und lokale Lehrkraftänderungen allein verändern weder Fokus, aktives Ziel noch Mastery. Veraltete oder ungültige Pläne werden nicht für automatische Übergaben verwendet. Request-Sperren, Scope-Sequenzen und autoritative Response-Prüfungen verhindern Doppelklick- sowie veraltete Antwort-Rennen. Der Erfolgsvergleich kanonisiert ausschließlich dieselbe chronologische Blockreihenfolge wie das Backend; abweichende Fachdaten, Atomziele oder Datumswerte bleiben fail-closed. Fehler behaupten keinen Teilerfolg.

Die notwendige deutsche und englische Datenschutzcopy beschreibt die atomare Mehrfachkopie, den automatischen Erststart, das Parken ohne Mastery-Änderung, die deterministische Übergabe und die unveränderte Direct-ID-Bearer-Grenze wahrheitsgemäß. Die begrenzte beobachtbare Wirkung auf einen späteren OpenAI-V1-Zustandsresponse bleibt dieselbe Wirkungsklasse wie in Abschnitt 6.31: Nach einer First-Party-Aktivierung kann der unveränderte Coach einen anderen bereits existierenden kanonischen Fokus oder activeGoal lesen. Der V1-Coach kann weiterhin weder Pläne anlegen, aktivieren, wechseln, ersetzen noch anzeigen.

Die Laufzeitfreigabe und ihre notwendige Datenschutzfortschreibung sind in review-freeze.json als zwei eng gekoppelte Ausnahme-Einträge append-only mit den exakten Quell-, Copy-, Fixture-, Test- und Konzeptbytes sowie ihren vorhandenen Hashketten gebunden. OpenAI- und Claude-Package-Bytes, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Prepared Messages, First-Party-Provider-Start, Identität, Locale und Session-Lifecycle bleiben unverändert. Die eingereichte Review-Fixture bleibt ohne Fachpläne und mit followLearningPlans=false; Reviewfälle, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte ändern sich nicht. Deshalb ist keine Aktion im OpenAI-Portal erforderlich.

Ein Sicherheits- oder Verfügbarkeitsnotfall wird sofort gemeldet, hebt die Sperre aber nicht automatisch auf. Rejection und Withdrawal erlauben nur den ausdrücklich freigegebenen Remediation-Satz. Approval allein ist noch keine Veröffentlichung und ändert die Sperre ebenfalls nicht.

Nach der tatsächlichen Portal-Veröffentlichung autorisiert der Product Owner zuerst ausdrücklich den rein operativen Zustandswechsel vom Review-Freeze zur dauerhaften Published-Sperre. Im selben begrenzten Arbeitsschritt wird der reale Publish mit dem bestehenden record-published-Verfahren dokumentiert. Ab dann ist 1.0.0 dauerhaft unveränderlich; jede Weiterentwicklung beginnt als neue SemVer-Kandidatin.

6.46 Eng begrenzte Ausnahme: voraussetzungssichere parallele Fachpläne

Der Product Owner hat am 4. September 2026 nach der beobachteten atomaren Ablehnung der gemeinsamen Mathematik- und Physikplanung ausdrücklich klargestellt: Jeder Fachplan gilt gleichzeitig; die Anforderungen aller gültigen Fachpläne für einen Kalendertag werden addiert. Eine Reihenfolge zwischen Mathematik, Physik oder weiteren Fächern darf weder aus Voraussetzungen noch aus der automatischen Lernführung entstehen. Die bestehenden Pläne sollen ohne Löschen und Neuanlage wirksam werden können.

Zur eng begrenzten Fehlerbehebung in der First-Party-Planung ist ausschließlich freigegeben:

  • die wirksamen Voraussetzungen vor der Veröffentlichung über alle Lernblöcke desselben Fachplans gegen die exakt berechneten Fälligkeitstage zu prüfen;
  • eine bereits gültige Atomreihenfolge vollständig unverändert zu erhalten;
  • bei einer blockübergreifenden Kollision eine begrenzte deterministische Korrektur allein durch die Reihenfolge der Atomziele innerhalb ihrer bereits vorhandenen Lernblöcke zu versuchen; akzeptiert wird ausschließlich ein anschließend exakt validiertes Ergebnis, Atomziele wechseln weder Fach noch Block, und Blockfokus, Titel, Beginn und Ende bleiben unverändert;
  • dieselbe Prüfung im Backend gegen die autoritative Projektion und deren effectiveRequires zu wiederholen, das Ergebnis exakt zu validieren und Voraussetzungen mit demselben Fälligkeitstag zuzulassen;
  • zusätzlich die tatsächlich im Lehrer- und Lernenden-Read-Model verwendete kumulative Rundung an jedem relevanten Werktag begrenzt nachzuvollziehen; jede fällige Planmenge muss gegenüber den im selben Fachplan enthaltenen Voraussetzungen abgeschlossen sein, und die Aufwandsgrenze bleibt fail-closed;
  • bei überlappenden Lernblöcken jeden neuen globalen Fälligkeitsslot deterministisch genau einmal dem bereits begonnenen Block mit dem frühesten Ende zuzuweisen. Innerhalb eines Blocks wird ausschließlich der nächste Atom-Prefix verwendet. Damit wächst die konkrete Fälligkeitsmenge von Tag zu Tag monoton, ihre Größe bleibt exakt die einmal gerundete Summe der erwarteten Zieläquivalente, und jeder Block ist spätestens an seinem Ende vollständig fällig. Backend und Lehrerplanung verwenden dieselben Slot-Daten; sowie
  • eine Planung, für die innerhalb dieser Grenzen keine konfliktfreie Reihenfolge gefunden wurde, weiterhin vor dem ersten Schreiben atomar abzulehnen. Der First-Party-Endpunkt darf dafür nur den fest gebundenen Fehlercode LEARNING_PLAN_PREREQUISITE_SCHEDULE_CONFLICT ohne Ziel-IDs, interne Begründung oder Stackdetails liefern; die WebGUI übersetzt ihn in eine handlungsorientierte deutsche oder englische Meldung und behauptet keinen Teilerfolg.

Die Korrektur serialisiert keine Fachpläne. Mathematik, Physik und weitere Fächer werden weiter unabhängig gespeichert, gemeinsam aktiviert und im Lernenden-Cockpit parallel geführt. openDueThroughToday bleibt die Summe der offenen Anforderungen aller gültigen Fachpläne einschließlich Rückständen; Fachwechsel, automatische Auswahl des ersten fälligen zulässigen Ziels und deterministische Übergabe bleiben unverändert. Der strenge Erfolgsvergleich akzeptiert weiterhin keine abweichende Atomreihenfolge, damit Lehrer- und Lernendenprojektion bei einem unerwarteten serverseitigen Reorder fail-closed bleiben.

Die Regression bindet den real beobachteten lösbaren Slot-Typ, bereits gültige Bestandsreihenfolgen, gleiche Fälligkeitstage, einen unlösbaren Fall, die atomare Ablehnung, den sicheren Fehler-Envelope und die lokalisierte Lehrkraftmeldung. Die bestehende Cockpit-Evidenz für die Addition mehrerer Fachpläne und den ausdrücklichen Fachwechsel bleibt unverändert gültig.

OpenAI- und Claude-Package-Bytes, MCP/OAuth, Tools, Schemas, Annotationen, Instruktionen, Ressourcen, MCP-Apps-UI, Prepared Messages, First-Party-Provider-Start, Identität, Locale, Session-Lifecycle, Reviewfälle, Review-Fixtures, Portalwerte, Reviewer-Zugangsdaten, Demo und Reviewartefakte bleiben unverändert. Die eingereichte Review-Fixture enthält weiterhin keine Fachpläne und followLearningPlans=false; deshalb ist keine Aktion im OpenAI-Portal erforderlich.

6.47 Eng begrenzte Ausnahme: planorientierter Claude Coach 1.1 als vollständiger Ersatz

Der Product Owner hat am 4. September 2026 ausdrücklich freigegeben, die bisherige Claude-Variante vollständig durch SkillPilot Claude Coach 1.1 zu ersetzen. Frühere Claude-Pakete bleiben unveränderliche historische Evidenz, sind aber weder aktuelle Variante noch empfohlener Installationsweg oder Fallback. Der öffentliche persönliche Git-Marketplace enthält bis zu seiner erneuten kandidatengenauen Veröffentlichung weiterhin die historische Version 1.0.4 und wird deshalb in der First-Party-Anleitung fail-closed ausgeblendet. Die sichtbare Anleitung akzeptiert ausschließlich den hashgebundenen 1.1.0-Direktinstallationskandidaten; ein alter, abweichender oder ungültiger Index bietet keinen Download an.

Für die gemeinsame providerneutrale Planprojektion und den Claude-1.1-Vertrag ist ausschließlich freigegeben:

  • für jeden gültigen aktuellen Fachplan die heute neu fälligen Ziele, die davon aktuell bereits beherrschten Ziele, die heute noch offenen Ziele und offene Rückstände getrennt zu berechnen und über alle Fachpläne zu addieren;
  • completedToday ausschließlich als aktuellen Beherrschungsstand innerhalb der heute neu fälligen Menge zu verwenden; mangels Ereignishistorie wird damit keine Beherrschung an diesem Tag behauptet;
  • veraltete, ungültige oder nicht sicher lokalisierbare Fachpläne aus allen Summen auszuschließen und lediglich ihre anonyme Anzahl zu melden;
  • im öffentlichen Chat-Kontext nur Datum, Planmodus, lokalisierte Fachnamen, Zählwerte, Summen, anonyme Nichtverfügbarkeitsanzahl und die boolesche Fortsetzbarkeit zu liefern; Plan-, Landscape- und andere interne IDs werden nicht übertragen;
  • zu Beginn einer Lernsession die Werte aller gültigen Fächer knapp zu nennen, Rückstände separat auszuweisen und unveränderte Werte nicht in jeder Antwort zu wiederholen;
  • ein bereits laufendes unbeherrschtes Lernziel unverändert fortzusetzen; und
  • nur wenn kein Lernziel läuft und der autoritative Status resumeAvailable=true liefert, mit dem neuen Write-Tool resume_skillpilot_learning_plan ohne Rückfrage das serverseitig gewählte nächste fällige, offene und voraussetzungssichere Planziel zu aktivieren. Der Write erhält weder Plan noch Fach, Datum oder Ziel als Auswahlparameter, bleibt an Lernsession, Write-Scope, expectedStateVersion und clientRequestId gebunden, verbietet erfolgreiche No-ops und liefert den vollständigen neuen kanonischen Kontext zurück; und
  • auf einen ausdrücklichen Lernendenwunsch wie „Wechsle zu Physik“ mit switch_skillpilot_learning_plan_subject zu reagieren. Das Tool akzeptiert ausschließlich einen lokalisierten Fachnamen aus dem frischen learningPlanToday, niemals eine Plan-, Landscape- oder Ziel-ID. Der Server löst genau einen gültigen Fachplan auf, parkt das bisherige Ziel ohne Beherrschungsänderung und aktiviert dessen erstes fälliges, voraussetzungssicheres Ziel. Unbekannte, mehrdeutige, bereits aktive oder derzeit nicht fortsetzbare Fächer werden ohne interne IDs fail-closed abgelehnt. Auch dieser Write ist versionsgeschützt, idempotent und liefert den vollständigen kanonischen Folgezustand.

Die Claude-Paketversion, Skill- und Policy-Texte, der Connector-Vertrag mit nun 14 Tools, die lokal reproduzierbare 1.1.0-Archivdatei, der aktuelle First-Party-Index, die Direktinstallations- und Marketplace-Release-Metadaten, die deutsche und englische Connector-Datenschutzseite sowie ihre strukturellen Prüfungen dürfen genau für diesen Ersatz fortgeschrieben werden. Alle Exact-Client-, Privacy-, Legal-, Support- und Marketplace-Evidenzen, die für 1.1.0 noch nicht tatsächlich erbracht wurden, bleiben ausdrücklich pending; frühere Beobachtungen werden nicht übernommen. Es erfolgt in diesem Arbeitsschritt keine externe Marketplace-Veröffentlichung und keine Behauptung einer Anthropic-Abnahme.

Insbesondere weist der aktuelle 1.1-Publikationsindex bis zur jeweils kandidatengenauen Abnahme testedSurfaces: [] und voiceMode: false aus. Die sichtbare First-Party-Anleitung und der öffentliche Zugangsvergleich dürfen Claude Pro, Web, Android und Voice nur als vorgesehenen beziehungsweise technisch unterstützten 1.1-Betatestpfad mit noch ausstehender Abnahme beschreiben. Sie dürfen die historische Erprobung früherer Claude-Pakete nicht als aktuellen 1.1-Nachweis darstellen.

ChatGPT-Start-Handler, Prepared Message, OpenAI-Portalwerte, eingereichtes OpenAI-Paket, Review-Snapshot, Reviewfälle, Fixture, Demo und MCP-Apps-UI bleiben unverändert. Die konkreten Quell-, Paket-, Datenschutz-, Release-, Test- und Dokumentationsbytes werden in der append-only Hashkette von review-freeze.json gebunden.

6.48 Eng begrenzte Ausnahme: lokaler OpenAI-Coach-1.1-Kandidat bei unverändertem Reviewvertrag

Der Product Owner hat am 4. September 2026 zugleich die lokale Vorbereitung eines späteren planorientierten OpenAI-Coach-1.1-Kandidaten freigegeben. Diese Freigabe hebt den aktiven Review-Freeze von SkillPilot Coach 1.0.0 nicht auf und aktiviert den Kandidaten weder lokal in der Standardkonfiguration noch in Produktion.

Der eingereichte Vertrag bleibt bei ausgeschaltetem, standardmäßig auf false stehenden Feature-Flag exakt unverändert: dieselben 12 Tools, dieselben Instruktionen und Schemas sowie der eingefrorene Contract-Fingerprint d2f08a66efa3488e5f87758de41688a18ce47ba2951bb2d3147e522d1fd30b38. Auch der kanonische Paketbaum ai/openai plugin/skillpilot-coach-v1, der eingefrorene Draft-Snapshot, die öffentliche Endpoint- und OAuth-Linie, Portalwerte, Reviewfälle, Fixture, Demo und Reviewartefakte bleiben bytegenau unverändert.

Nur bei einem später ausdrücklich gesetzten 1.1-Flag darf derselbe Backend-Build additiv genau zwei weitere Tools ausweisen:

  • get_skillpilot_daily_plan liest nach dem vollständigen Kontext die datensparsame additive Fachübersicht; eine im Kontext veröffentlichte Lernzielvisualisierung bleibt dabei der zwingend unmittelbar nächste Darstellungsschritt; und
  • resume_skillpilot_learning_plan darf ausschließlich nach einem frischen Status mit resumeAvailable=true und ohne aktives Lernziel denselben versionsgeschützten, idempotenten providerneutralen Reconcile-Pfad verwenden.

Die 1.1-Instruktionen benennen alle gültigen Fächer, unterscheiden heute neu fällig, davon aktuell beherrscht, heute offen und Rückstand, erfinden keine Planaufgaben und vergleichen Fächer weder nach Tempo noch Leistung. Der separate lokale Kandidatendeskriptor und sein deterministischer Checker müssen zugleich den unveränderten 1.0-Vertrag und den additiven 14-Tool-Kandidaten nachweisen. Es werden kein prepare, kein Portal-Save, kein MCP-Rescan, kein Upload, keine Veröffentlichung und keine Produktionsaktivierung ausgeführt.

Da der geschützte OpenAI-Backend-Quellbaum damit ausschließlich dormant erweiterbar wird, behält review-freeze.json seinen eingereichten Baumhash als Baseline und führt den ausdrücklich autorisierten neuen Baumhash in einer separaten append-only Hashkette. Der Freeze-Prüfer akzeptiert diese Kette nur, wenn die ursprüngliche Baseline unverändert im Record steht; jede spätere Abweichung benötigt erneut eine ausdrücklich freigegebene Folgeausnahme.

6.49 Eng begrenzte Ausnahme: einfache Chat-Führung im Claude Coach 1.1.1

Der Product Owner hat am 4. September 2026 die zuverlässige und möglichst einfache Führung von Lernenden mit bestehenden Plänen im Chat beauftragt. Die Korrektur wird als Claude Coach 1.1.1 vorbereitet; das bereits gebundene 1.1.0-Archiv und seine historische Release-Evidenz bleiben unverändert. 1.1.1 ersetzt den aktuellen Claude-Kandidaten vollständig, ohne parallelen alten Installationsweg. Die Zahl der Claude-Tools bleibt bei 14.

Die Freigabe umfasst ausschließlich folgende Verfeinerungen des in 6.47 autorisierten Workflows und ihre paketgenauen Regressionen und Release-Nachweise:

  • Die datensparsame Fachübersicht ergänzt boolesche Angaben zum aktuellen Fach und zur tatsächlichen Fortsetzbarkeit. Ein laufendes Ziel in einem anderen Fach verhindert den ausdrücklich gewünschten Fachwechsel nicht. Nicht startbare, bereits aktuelle oder heute abgeschlossene Fächer erzeugen keine wiederholten erfolglosen Wechselversuche.
  • Eindeutige natürliche Fachwünsche wie „Mathe“ werden auf den frisch vom Backend veröffentlichten Fachnamen abgebildet. Das Tool erhält weiterhin ausschließlich diesen exakten Namen; Mehrdeutigkeit wird kurz geklärt. Ein expliziter Fachwunsch hat Vorrang vor dem generischen automatischen Start.
  • Reine Statusfragen und eine ausdrücklich gewünschte Pause lösen keinen Planstart und keine neue Aufgabe aus. Ausgeschalteter Planmodus verhindert keine gewöhnliche, vom Lernenden gewünschte Sitzung außerhalb der Planung.
  • Das Backend unterscheidet laufendes Lernen, verfügbaren Start, erledigte Tagesanforderungen, blockierte offene Aufgaben und nicht sicher auswertbare Planung. Tagesabschluss setzt voraus, dass auch offene Rückstände erledigt sind und keine nicht auswertbaren Pläne fehlen. Generische Frontier-Ziele werden im geführten Plankontext nicht als zusätzliche heutige Pflicht angeboten. Künftige Ziele oder eine Fokuserweiterung beginnen nicht automatisch nach Tagesabschluss; Planungskorrekturen bleiben Aufgabe der Lehrkraft.
  • Nach bestätigtem Verified-Recall-Abschluss enthält dieselbe idempotente Antwort den aktuellen vollständigen Nachfolgekontext mit Tageszahlen und gegebenenfalls nächstem Fach. Es erfolgt kein zusätzlicher Mastery- oder Auswahlwrite. Historische Wiederholungsantworten ohne Nachfolgekontext verlangen genau einen lesenden Kontext-Reload.

Vorhandene Pläne müssen dafür weder gelöscht noch neu angelegt werden. Die Semantik der Zählwerte aus 6.47 und die kanonischen Voraussetzungen-, Mastery- und Übergaberegeln bleiben erhalten. Die normalen First-Party-Start-Handler, Prepared Messages, Identität, Locale, Session-Bindung und absolute 24-Stunden-Laufzeit bleiben unverändert. Nach Ablauf ist weiterhin ein neuer Start über SkillPilot erforderlich; eine vollständig chatinterne Erneuerung wird nicht behauptet.

Alle noch nicht tatsächlich erbrachten 1.1.1-Exact-Client-, Datenschutz-, Support- und Marketplace-Nachweise bleiben pending; historische Abnahmen werden nicht übertragen. Die Freigabe umfasst keine externe Veröffentlichung oder Produktionsaktivierung. Der eingereichte OpenAI-Coach-1.0.0-Vertrag, sein Paket, Review-Snapshot, Portal, Reviewfälle, Fixture, Demo und UI-Bytes bleiben unverändert, ebenso der lokale standardmäßig deaktivierte OpenAI-1.1-Kandidat. Die konkreten Claude-, gemeinsamen Status-, Test-, Release- und Dokumentationsbytes werden append-only in der Freeze-Kette gebunden.

6.50 Eng begrenzte Ausnahme: vereinfachte First-Party-Kursplanung mit Schülervorschau

Der Product Owner hat am 4. September 2026 nach Prüfung eines interaktiven Entwurfs dessen Umsetzung für „Kurse planen“ freigegeben. Die Freigabe betrifft ausschließlich die unabhängige First-Party-Planungsoberfläche und eine lesende Vorschau der bereits autorisierten gemeinsamen Fachplanung:

  • Eine kompakte Fachübersicht unterscheidet gespeicherte Entwürfe von der tatsächlich aktiven Planung. Der Planmodus wird vom Backend gelesen; das bloße Vorhandensein gespeicherter Fachpläne bedeutet nicht „aktiv“.
  • „Plan bearbeiten“, „Schülervorschau“ und „Unterricht & Verlauf“ trennen die Aufgaben. Bearbeitbare Abschnitte stehen direkt im Arbeitsbereich; das Formular öffnet sichtbar am Abschnitt mit Tastaturfokus. Interne Wechsel erhalten Eingaben. Fach-, Kurs-, Arbeitsbereichs- und Logout-Aktionen fragen vor dem Verwerfen ungespeicherter Eingaben nach.
  • Die First-Party-Route POST /api/ui/learners/{id}/learning-plans/preview berechnet sieben Kalendertage ab dem aktuellen Berliner Datum mit denselben Prüfungen, Voraussetzungen, Normalisierungen und Tagesmetriken wie Aktivierung und Chat. Anforderungen aller Fächer werden addiert; Überschneidungen innerhalb eines Fachplans werden nach den bestehenden Regeln genau einmal zugeordnet. Der aktuelle Lernstand bleibt ein Snapshot, keine Prognose künftiger Erfolge.
  • Die Vorschau nutzt ausschließlich den vorhandenen lesenden Routenzugang, antwortet mit no-store und erzeugt keine Plan-, Revisions-, Auswahl-, Präferenz-, Ereignis-, Sperr- oder Retention-Aktivitätsänderung. Nicht gespeicherte Formulareingaben, veraltete Revisionen und nicht vollständig prüfbare Fachpläne verhindern eine irreführende Vorschau oder Aktivierung.
  • Erst die ausdrückliche abschließende Bestätigung nutzt die unveränderte atomare Aktivierung. Die Vorschau ist davor Pflicht. Unterrichtsabdeckung bleibt lokale Dokumentation und setzt keine Schüler-Mastery.

Die Freigabe ändert weder OpenAI- noch Claude-Tools, Pakete, Versionen, MCP-/OAuth-Verträge, UI-Ressourcen, Prepared Messages, Launch-Handler, Schüler-Sitzungen, Identität, Locale, Reviewfälle oder Veröffentlichungsstatus. Der eingereichte OpenAI-Coach 1.0.0, der deaktivierte lokale 1.1-Kandidat und der Claude-1.1.1-Kandidat bleiben unverändert. Es erfolgen keine externe Publikation, Portaländerung oder Produktionsaktivierung. Die eng begrenzten First-Party-, Service- und Regressionsdateien werden append-only mit ihren konkreten Hashes gebunden; frühere Freigaben und die eingereichten Bytes bleiben unverändert.

6.51 Eng begrenzte Ausnahme: Claude 1.1.1 Marketplace-Veroeffentlichung und Updateanleitung

Der Product Owner hat am 5. September 2026 ausdrücklich verlangt, dass das Claude-Update über den Marketplace erfolgt, und die unveränderte Veröffentlichung von 1.1.1 nach Prüfung der Copilot-Hinweise selbst gemergt. Freigegeben ist ausschließlich die Veröffentlichung des bereits unveränderlich gebundenen Claude-1.1.1-Pakets sowie dessen deutsche und englische First-Party-Installations- und Updatehilfe.

Die öffentliche Revision 5cc7aba22ddf90ab8273cd6c15b71e8186781fc3 wurde nach dem Merge mit dem geschlossenen Export von elf Dateien verglichen, mit dem gepinnten Claude-Validator streng geprüft und über die echte HTTPS-Gitquelle in einem isolierten Profil installiert. Der Tree-SHA-256 lautet 8c6c67b46763224d901a65b35408dad7752f6c7db08203fd38cf0f568a74c5d3; das Plugin bleibt Version 1.1.1 mit SHA-256 b4bfa8122812bf1ad0430e6b02932b89e29b107c7a831cebf994da010c359351.

Die zusätzliche Freigabe umfasst nur marketplace-publication.json, die Marketplace-Anleitung in PluginCatalogView.tsx, ihren Veröffentlichungsschalter und die fokussierten Regressionen sowie das Marketplace-Runbook und diesen Nachweis. Updates stehen vor der Neuinstallation; die Anleitung nennt 1.1.1, erhält die gezielte Bereinigung alter SkillPilot-Dateiinstallationen, den gebündelten OAuth-Konnektor und die Rückkehr zu SkillPilot. Sie bietet keinen Datei-Upload als parallelen Installationsweg an. Die vorhandene Kopieraktion schreibt weiterhin nur die feste öffentliche Repository-Adresse.

Nur der öffentliche Repository-Nachweis wird pass; die separate Guide-Entscheidung ist an Kandidat, Revision und Tree gebunden. Der Status bleibt published_pending_acceptance. Reale Neuinstallation, Account-Migration und Refresh, Web/Android/Voice, Datenschutz-, Rechts- und Supportabnahmen bleiben offen; openPublicBetaReady bleibt false. Der Git-Merge bestätigt keine bereits aktualisierten Benutzeraccounts. Es erfolgt kein First-Party-Deployment.

Das eingereichte OpenAI-Paket 1.0.0, alle OpenAI- und Claude-Paketbytes, MCP-/OAuth-/Tool-/Schema-/MCP-Apps-Verträge, Provider-Start-Handler, Prepared Messages, Session-, Identitäts- und Locale-Semantik, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Der OpenAI-Portalreview wird weder zurückgezogen noch neu eingereicht. Die konkreten Guide-, Metadaten-, Test- und Dokumentationshashes werden append-only gebunden; kein früherer Hashanker wird ersetzt.

Präzisierung derselben Guide-Freigabe anhand der vom Product Owner am 5. September gezeigten Claude-Web-Dialoge: Die installierte Version 1.0.4 bietet keine Aktion „Aktualisieren“. Belegt sind „Hinzufügen“ → „Marketplace hinzufügen“ → „Aus einem Repository hinzufügen“, die bekannte Repository-URL, „Automatisch synchronisieren“ und „Synchronisieren“. Nur die bereits freigegebene Anleitung, ihre Copy-Regression und das Runbook werden darauf korrigiert. Die englischen Bezeichnungen sind Übersetzungen der beobachteten deutschen Oberfläche. Die anschließende Versionsprüfung auf 1.1.1 bleibt erforderlich; weder ein erfolgreicher Account-Refresh noch automatische Updates über alle Clients sind damit abgenommen. Ein ergänzender Hashketteneintrag erhält sämtliche vorherigen Bindungen, ohne die Freigabe zu erweitern.

Der nachfolgende Screenshot nach „Synchronisieren“ meldet ausdrücklich „Dieser Marketplace wurde bereits hinzugefügt.“ Das erneute Hinzufügen ist damit kein belegter Updateweg für bestehende Installationen. Die Anleitung trennt diese Beobachtung von den Schritten zur Neuinstallation und lässt die manuelle Web-Refresh-Abnahme offen; sie erfindet weder eine Updateaktion noch einen Lösch-/Neuinstallations-Workaround.

6.52 Eng begrenzte Ausnahme: arbeitstagsfester Backend-Aktivierungstest

Der Product Owner hat am 5. September 2026 die zuvor ausdrücklich angefragte Wochenendkorrektur in backend/src/test/java/com/skillpilot/backend/service/LearnerServiceTest.java einschließlich der zugehörigen Freeze-Hashfortschreibung genehmigt. Der Test planPackageActivationEnablesFollowingAndSelectsTheFirstGoalWithoutAnotherAction legte seinen eintägigen Lernblock auf den jeweils aktuellen Berliner Tag. Am Samstag und Sonntag verletzt das die unveränderte Produktregel, dass ein Lernblock mindestens einen Arbeitstag enthalten muss.

Freigegeben und geändert ist ausschließlich das Testdatum dieses Falls:

  • asOf bleibt der aktuelle Berliner Kalendertag und wird unverändert als Aktivierungsstichtag übergeben;
  • der eintägige Testblock liegt auf dem letzten Freitag einschließlich heute (previousOrSame(FRIDAY)), sodass er stets einen Arbeitstag enthält und am tatsächlichen Aktivierungstag fällig ist;
  • sämtliche bestehenden Assertions, die Systemzeit, der Produktcode und alle übrigen Testfälle bleiben unverändert.

Die bestehende Hashkette wird append-only fortgesetzt:

  • backend/src/test/java/com/skillpilot/backend/service/LearnerServiceTest.java: 0105dcec686ce142d729b77e435665f50d535a53bcfc1f35637d79138e5b8ec2 → 90d7a903ad90dfcaa35f03fc5d6d4b7a467cf59a6300d74f30ccf569528b0d87.

Die Ausnahme ist rein testseitig; das eingereichte Plugin bleibt skillpilot-coach-v1 Version 1.0.0. Runtime-, Session-, Identitäts-, Locale- und Lernzustandsverhalten, OpenAI-/Claude-Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Startabläufe, Portalwerte, Reviewer-Zugänge und Reviewartefakte werden nicht verändert. Ein Zurückziehen oder erneutes Einreichen im OpenAI-Portal ist deshalb nicht erforderlich. Der Freeze-Record, seine exakte Checker-Erwartung und der zugehörige Regressionstest erhalten nur den zusätzlichen, auf diese Testdatei und diesen Dokumentationsnachtrag begrenzten Hashketteneintrag; frühere Freigaben bleiben unverändert erhalten.

6.53 Eng begrenzte Ausnahme: Originalquellen in der öffentlichen Buchmatrix

Der Product Owner hat am 5. September 2026 ausdrücklich die Umsetzung nachvollziehbarer Originalquellen, insbesondere Links, für jeden Eintrag der Geltungsmatrix im Lernzielbuch verlangt. Die Freigabe betrifft ausschließlich die lesende Quellenanzeige in der öffentlichen First-Party-Buchansicht für Mathematik und Physik sowie deren Build- und Regressionsevidenz.

Die zusätzliche Spalte zeigt vorhandene amtliche Dokumentlinks und Fundstellen aus den bestehenden Mapping-/Quellenextraktionsdaten. Direkte Zuordnungen, Zuordnungen über übergeordnete Themenbereiche und unvollständig eingegrenzter Quellenkontext bleiben unterscheidbar; fehlende Einzelbelege werden nicht durch erfundene Quellen oder Freigabeentscheidungen ersetzt. Gedruckte Seitenzahlen werden nicht ungeprüft in PDF-Seitenanker umgedeutet.

Ein separater, versionierter öffentlicher Quellenindex ist an Buch-ID und BookModel-Digest gebunden und wird erst beim Öffnen der Matrix gelesen. Er enthält ausschließlich abgeleitete Belegmetadaten, keine zweite Lernziel- oder Geltungsdefinition und keine Lernerdaten. Der Veröffentlichungscheck prüft ihn gegen die aktuellen Quelleninputs. Das gemeinsame BookModel, die PDF-Seiten, deren Onlineverweise und die sieben bestehenden Feedback-Linkparameter bleiben unverändert. Neue Netzwerkzugriffe beschränken sich auf statische Buchmetadaten; amtliche Originalquellen öffnen erst nach ausdrücklicher Linkauswahl.

Die bisher hashgebundene GoalBookView.tsx erhält nur diese Anzeigeanbindung. Die konkreten Quellenanzeige-, Prüf- und Dokumentationshashes werden append-only ergänzt. Das eingereichte OpenAI-Plugin bleibt Version 1.0.0; OpenAI- und Claude-Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Startabläufe, Feedback-Handler, Session-, Identitäts-, Locale- und Lernzustandssemantik, Portalwerte, Reviewer-Zugänge und Reviewartefakte bleiben unverändert. Es erfolgt weder ein Deployment noch ein erneutes Einreichen. Die große fachliche Curriculum-QS bleibt pausiert.

6.54 Eng begrenzte Ausnahme: kompatible Lernpläne nach Curriculum-Updates

Der Product Owner hat am 5. September 2026 nach der Diagnose des Produktionsproblems ausdrücklich den vorgeschlagenen Hotfix im aktuellen First-Party-Web-/Backend-Stand einschließlich Statusanzeige und Regressionstests freigegeben. Unveränderte, gegen das aktuelle persönliche Curriculum weiterhin gültige Fachzeitpläne sollen nach fachlichen Updates ohne erneute Übernahme weiterlaufen können.

Die bisherige pauschale Gleichheit mit dem gespeicherten fachweiten Graph-Fingerprint wird ausschließlich für die Gültigkeitsentscheidung bestehender persönlicher Fachzeitpläne durch eine gemeinsame lesende Kompatibilitätsprüfung ersetzt. Die unveränderten gespeicherten Ziel-IDs, Blöcke, Reihenfolgen und Termine müssen weiterhin zum aktuellen persönlichen Curriculum, zum Fach, zu den Blockfoki und zur aktuellen Voraussetzungslage passen. Nicht prüfbare oder inkompatible Pläne bleiben ausgeschlossen. Frontier, Revisionen und die bestehenden expliziten Schreibgrenzen bleiben verbindlich. Neue Curriculumziele werden nicht stillschweigend in einen gespeicherten Plan eingefügt.

Ein alter Fingerprint enthält keinen historischen Graphsnapshot. Die neue Prüfung behauptet deshalb keine historische Strukturidentität, sondern prüft die heutige Gültigkeit der unveränderten gespeicherten Planung. Lesen und Vorschau schreiben weder Planbytes noch Fingerprint, Revision, Modus, Fokus, aktives Ziel oder Mastery um. Es gibt keine Datenmigration, automatische Neuveröffentlichung oder neue zentrale Lehrer-/Klassenablage.

Die lokale Lehrkraftanzeige unterscheidet einen erforderlichen Planabgleich von tatsächlichen lokalen Planänderungen. Ein nur aus dem Curriculum abgeleiteter Titelwechsel gilt nicht als Lehreränderung; selbst bearbeitete Titel und unklare Herkunft bleiben konservativ prüfbar. Der strikte Vergleich einer ausdrücklich bestätigten Aktivierungsantwort wird nicht gelockert.

Der freigegebene Dateiumfang umfasst LearnerService.java, LearnerLearningPlanService.java, deren fokussierte Service- und Integrationstests sowie die eng zugehörige lokale teacherLearningPlanActivation-Logik, ihre Statusdarstellung und Regressionen. Ihre konkreten Hashes und dieser Nachtrag werden append-only in der Freeze-Kette gebunden; frühere Freigaben bleiben unverändert.

Die korrigierte Gültigkeitsentscheidung kann nach bereits aktiviertem Planmodus wieder eine reguläre Lernübergabe erlauben. Diese begrenzte beobachtbare Zustandswirkung gehört zur ausdrücklich freigegebenen Korrektur des Ablaufs aus Abschnitt 6.31/6.45; sie ist nicht mit einer Änderung des eingereichten Paketvertrags gleichzusetzen. Das OpenAI-Plugin bleibt unverändert 1.0.0, das Claude-Paket unverändert 1.1.1. MCP/OAuth, Tools, Schemas, MCP-Apps- Ressourcen, Provider-Startabläufe, Prepared Messages, Session-, Identitäts- und Locale-Verträge, Portalwerte, die standardmäßig planlose Review-Fixture, Reviewfälle und Reviewartefakte bleiben unverändert. Der Portalreview wird nicht zurückgezogen oder neu eingereicht. Die fachliche Curriculum-QS bleibt pausiert. Die separat freigegebene Verbindung von Lernzielbuch und Zeitplanung ist kein Bestandteil dieses Produktions-Hotfixes.

6.55 Eng begrenzte Ausnahme: Buchauswahl und lokale Kursplan-Zeitachse

Der Product Owner hat am 5. September 2026 zusätzlich ausdrücklich die Planung und Umsetzung der Verbindung von Lernzielbuch und Zeitplanung freigegeben. Die erste Ausbaustufe ist auf den vorhandenen lokalen First-Party-Kursplanungsraum beschränkt; sie bleibt vom Produktions-Hotfix aus Abschnitt 6.54 getrennt.

Freigegeben sind zwei reine Darstellungskomponenten (CoursePlanLearningBook.tsx, CoursePlanTimeline.tsx), ihre Einbindung in CoursePlanPilotView.tsx, die zugehörige Kursplan-UI-Regression und das Konzept teacher-goal-book-time-planning.md mit seinem Eintrag im Konzeptindex:

  • Eine lesbare Zielauswahl nutzt ausschließlich die bereits vorliegende autoritative Kursprojektion und vorhandene Planungsbasis. Sie erfindet keine neuen Ziele oder Bündel und behauptet nicht, ein separates geprüftes BookModel zu sein. Bei unterstützten Fächern öffnen öffentliche Ziel-Links das bestehende Lernzielbuch, ohne Klassen- oder Lernendenkennungen zu übermitteln. Die öffentliche Buchroute, ihre Quellenanzeige und ihre Artefakte bleiben unverändert.
  • Die Auswahl bereitet ausschließlich das vorhandene Abschnittsformular vor. Entwurfswarnung, sichtbarer Tastaturfokus, Datumsprüfung, explizites lokales Speichern und die getrennte bestätigte Übernahme bleiben erhalten.
  • Eine maßstäbliche Kalenderzeitachse stellt die vorhandenen Abschnitte, Puffer und Meilensteine dar. Tastaturbedienbare Elemente öffnen die bestehende Bearbeitung. Es gibt keine automatische Terminänderung und keine neuen Ferien-, Stundenbudget- oder Mastery-Annahmen.
  • Noch nicht eingeplante Ziele und vorhandene Voraussetzungshinweise sind lesende Planungsinformationen. Sie bescheinigen weder Unterrichtsabdeckung noch individuelles Verständnis.

Es gibt keine zusätzliche Persistenz, zentrale Klassenablage, neue API, KI-/Kalenderverbindung oder automatische Publikation. Die Komponenten erhalten keine neuen Session-, Identitäts-, Provider-Start- oder Lernzustandsfähigkeiten. Das Ziel ist ausschließlich das aktuelle First-Party-Webfrontend. OpenAI 1.0.0, Claude 1.1.1, ihre Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps- Ressourcen, Startabläufe, Portalwerte, Reviewfälle, Fixtures und Artefakte bleiben unverändert. Der Portalreview wird nicht zurückgezogen oder neu eingereicht. Die konkreten Quell-, Test- und Dokumentationshashes werden append-only gebunden. Ein Deployment oder die Wiederaufnahme fachlicher Curriculum-QS gehört nicht zu dieser Umsetzung.

6.56 CI-Korrektur: Buchregister nur im Repository-Webfrontend

Der Product Owner hat am 5. September 2026 die Behebung des roten Curriculum-CI-Jobs beauftragt. Im separaten package-consumer-Build zog die neue Kursplan-Buchauswahl das Repository-Buchregister mit festen Curriculum-IDs in das Bundle. Der bestehende Isolationstest hat dies korrekt abgewiesen; seine UUID-, Quellen- und Modulgrenzen bleiben unverändert streng.

Die Korrektur ergänzt ausschließlich die bestehende Modulersetzung in app/vite.config.ts für den Modus package-consumer. Ein eigener Adapter goalBookPublicationUnavailable.ts liefert dort keine Repository-Buchauswahl und verweigert eine Buchroute. Er importiert ausschließlich Typen, keine Repository-Daten. Die Kurszielauswahl und lokale Zeitplanung bleiben erhalten; die öffentliche Buchroute war in diesem Build bereits ausgeschlossen. Eine neue isolierte Regression läuft über prebuild:package-consumer vor dem bestehenden paketbasierten Frontendbuild.

Das normale Produktions-Webfrontend verwendet weiterhin das byteidentische Buchregister und die unveränderten Darstellungskomponenten aus Abschnitt 6.55. Die Modulersetzung ist in allen anderen Buildmodi inaktiv. Diese unabhängige Build-Isolationskorrektur hat keinen Effekt auf OpenAI 1.0.0, Claude 1.1.1, MCP/OAuth, Tools, Schemas, Start-, Session- oder Lernzustandsverträge, Portalwerte, Reviewfälle und Artefakte. Die betroffenen Konfigurations-, Adapter-, Test- und Dokumentationshashes werden append-only gebunden. Es gibt keine fachlichen Curriculum-Änderungen, keine zentrale Klassenablage und keine Änderung des Portalreviews.

6.57 CI-Nachtrag: vollständige Package-Smoke-Prüfsummenkette

Der Product Owner hat am 5. September 2026 die Behebung des nachfolgenden roten Curriculum-CI-Schritts beauftragt. Die Korrektur aus Abschnitt 6.56 war im separaten Paketbuild erfolgreich, aber dessen nachgelagerter hermetischer Smoke-Runner band weiterhin die vorherige Vite-Konfiguration.

Freigegeben ist ausschließlich die Fortschreibung dieses einen geprüften Vite-Hilfshashes in scripts/run_package_consumer_smoke.py und anschließend des Runner-Hashes in der zugehörigen full-standalone-v1.readiness-policy.json. Runner-Bytezahl, Identitäten, Versionen, Schemas, Prüflogik und alle übrigen Hilfshashes bleiben unverändert. Es werden keine Isolations-, Herkunfts-, Manipulations- oder Readiness-Gates entfernt oder gelockert.

Die bereits vorhandene frühe Package-Build-Regression prüft zusätzlich die Vite-/Runner-/Policy-Bindung, damit derselbe Fehler künftig vor dem Build auffällt. Die unabhängigen Python-Vertrags- und Smoke-Prüfungen bleiben vollständig bestehen. Nachgetestet werden der gesamte betroffene CI-Schritt und die bisher übersprungenen Schema-, UUID-, Archiv- und Legacy-Gates.

Die Änderungen betreffen ausschließlich die unabhängige Paket- und CI-Vertrauenskette. Anwendungslogik, Curricula, Klassenablage, OpenAI 1.0.0, Claude 1.1.1, MCP/OAuth, Tools, Schemas, Start-/Session-/Lernzustandsverträge, Portalwerte, Reviewfälle und Artefakte bleiben unverändert. Die betroffenen Quell-, Policy-, Test- und Dokumentationshashes werden append-only gebunden; eine Portalaktion oder ein Deployment erfolgt nicht.

6.58 Eng begrenzte Ausnahme: Lernzielbuch-Testzahl nach Layer-A-Aufteilung

Der Product Owner hat am 5. September 2026 die genaue Frage freigegeben, ob ausschließlich die feste Lernzielbuch-Testzahl von 795 auf 796 und die zugehörigen Freeze-Prüfhashes samt Dokumentation angepasst werden dürfen: „ja .... bei Fragen auf ähnlichem Risikoniveau hast Du auch meine Freigabe“.

Die bereits fachlich genehmigte Aufteilung eines zusammengesetzten Mathematikziels in zwei atomare Teilkompetenzen erhöht die aktuelle Mathematikbuch-Anzahl um eins. Freigegeben ist in app/scripts/testGoalBookPublication.ts ausschließlich der Erwartungswert von verified.model.pages.length: 796 statt 795. Die exakte Anzahlprüfung bleibt erhalten. Testablauf, Negativfälle, Datenintegrität, Veröffentlichungs- und Quellenprüfungen werden weder entfernt noch gelockert.

Die Testdatei wird in der vorhandenen Hashkette append-only fortgeschrieben:

  • app/scripts/testGoalBookPublication.ts: fd49334616e0a98b08e6a2697a7249c4bdb2d5c76f6fb5659058a26e32ab7ae4 → 11483618c5b187dc8bd31c7a0e9a92b0bab74297a73fa2ba8a40a2f4104e0079.

Der neue Ausnahme-Eintrag bindet zusätzlich den Hash dieses Nachtrags; Runtime-Checker und Regressionserwartung enthalten dieselbe genaue Ausnahme. Frühere Freigaben und eingereichte Baselines bleiben unverändert. Ziel ist ausschließlich der lokale/CI-seitige Veröffentlichungstest des öffentlichen Layer-A-Buchs. OpenAI 1.0.0, Claude 1.1.1, ihre Pakete, Produktquellen, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Start-/Session-/Identitäts-/ Locale-/Lernzustandsverträge, Portalwerte, Reviewfälle, Fixtures und Artefakte ändern sich nicht. Es ist weder ein Zurückziehen noch ein erneutes Einreichen des Portalreviews erforderlich; es erfolgt kein Deployment.

Die zusätzliche Vorabfreigabe auf vergleichbarem Risikoniveau gilt für nachweislich mechanische Testdaten-/Zähler- und abgeleitete Hashanpassungen infolge bereits genehmigter fachlicher Layer-A-Änderungen, mit unveränderter Prüflogik und unverändertem Produktverhalten. Auch solche Fälle erhalten einen konkret dokumentierten Umfang, exakte append-only Hashbindungen und passende Regressionen. Sie gestattet keine pauschale Neubasierung, Abschwächung von Gates oder Änderung von Verträgen, Reviewfällen, Berechtigungen, Speicherung oder Sicherheitsverhalten. Bei unklarem oder höherem Risiko bleibt die gesonderte Rückfrage erforderlich.

6.59 Eng begrenzte Ausnahme: öffentliches Direktfeedback und Chemie-/Biologiebücher

Der Product Owner hat am 6. September 2026 ausdrücklich freigegeben, Lernziel-Direktfeedback auf der öffentlichen Curricula-Seite als primären Beitragsweg darzustellen, die bisherigen Issues-/PR-Zähler zu entfernen und GitHub als sekundären Weg für größere Themen beizubehalten. Die zugehörige deutsche und englische Whitepaper- und Comicdarstellung darf entsprechend angepasst werden. Zusätzlich sind echte native Lernzielbücher für Chemie und Biologie sowie deren Anbindung an den bereits vorhandenen Feedbackweg aus Abschnitten 6.18 und 6.19 freigegeben.

Die beiden neuen Bücher heißen de-gym-chemie-lk und de-gym-biologie-gk. Sie verwenden die bestehenden fachlichen CrossStage-Kompositionsansichten mit dem jeweiligen Kursprofil LK beziehungsweise GK. Sie werden nicht als bundesweite Vollatlanten oder als neue fachliche Curriculum-Abdeckung ausgegeben. Konfiguration, BookModel, PDF, Render-Manifest und Originalquellen-Metadaten entstehen über den vorhandenen nativen Publikationspfad und werden im bestehenden öffentlichen Buchindex registriert. Die vorhandenen Mathematik- und Physik-Buchartefakte bleiben bytegleich.

Die ergänzten semanticKind-Ledgers und ihre Typbelege klassifizieren nur den Knotentyp für die Buchprojektion. Sie sind keine neue positive fachliche Atomicity-, Human-Review-, Maturity- oder Releaseentscheidung. Insbesondere werden die 177 gewöhnlichen Chemie-Inhalts-/Prozesskompetenzblätter ohne Atomicity-Review nicht nachträglich als fachlich geprüft ausgegeben. Ihr Knotentyp wurde anhand der vorhandenen Texte und Marker abgeglichen; die kanonischen Ziele und Atomicity-Ledgers bleiben unverändert. Der leere, buchlokale Visualisierungsinput app/scripts/config/goal-books/de-gym-biology-gk.visualization-input.json liegt außerhalb der globalen Bild-QA-Registry. Er erteilt keine Bildfreigabe und startet keinen Biologie-Bildrollout. Bestehende Publikations-, Quellen-, Bildfreigabe- und Integritätsprüfungen bleiben streng.

Das öffentliche Buchregister und die vier lokalisierten Fachbeschriftungen in GoalBookView werden um die beiden tatsächlichen Bücher ergänzt. Die vorhandene Cockpit-Aktion darf nun auch für registrierte Chemie- und Biologieziele denselben bewussten Current-Binding-Lookup verwenden. Dieser bleibt ein begrenzter, nicht speichernder Lesezugriff mit genau bookId und goalId; es gibt kein Vorabladen. Feedbacklinks und Kontextprüfung behalten exakt bookId, goalId, edition, goalFingerprint, pageFingerprint, bookDigest und page. Es werden keine Lernenden-, Session-, Chat- oder Lernstandsdaten ergänzt. Cockpit-Herkunftsmarker und Rücksprung bleiben unverändert browserlokal; unbekannte Ziele, zusätzliche Parameter und falsche Publikationsbindungen bleiben ungültig.

Die bestehende Backend-Publikationsregistry verarbeitet den erweiterten öffentlichen Index ohne Implementierungsänderung. Eine zusätzliche Repository-Katalogregression prüft die echten neuen Buchbindungen; die vorhandenen Backend-Fixtures und Fail-closed-Tests bleiben unverändert. Browser- und Publikationsregressionen werden um Fachwahl, native Buchbindung, die sieben Feedbackfelder und den unveränderten Cockpit-Übertragungsrahmen ergänzt. Die bestehende Package-Consumer-Isolation bleibt unverändert.

Die genaue Hashfortschreibung betrifft ausschließlich diese bereits gebundenen Dateien und diesen Dokumentationsnachtrag:

  • app/src/views/GoalBookView.tsx;
  • app/scripts/testGoalBookPublication.ts;
  • app/scripts/testGoalBookUi.ts;
  • app/scripts/testLearnerGoalFeedbackUi.ts;
  • app/scripts/fixtures/learnerGoalFeedbackUi.tsx;
  • docs/deploy/openai-plugin-v1-review-freeze.md.

Record, Runtime-Checker und Regressionserwartung erhalten denselben neuen append-only Eintrag. Alle früheren Einträge und eingereichten Baselines bleiben unverändert. Die zusätzliche Regression sichert, dass dabei kein bisher ungepinnter Pfad neu gebunden und keine primäre Runtime- oder Baumkette geändert wird. Insbesondere erhalten das bisher ungepinnte Buchregister, Buchdaten, öffentliche Curricula-/Whitepaper-/Comicdarstellung und deren ungepinnte Tests keine neue Dauerbindung. Die Comic-Transparenzkorrektur betrifft nur die beiden Bilddigests der vorhandenen champion-comic-Sammlung; sie ändert keine Providerzählungen oder sonstige Provenienzbehauptungen.

Diese Freigabe erweitert allein den öffentlichen First-Party-Buch- und Feedback-Fachumfang. Sie schafft keine MCP- oder Coach-Werkzeugberechtigung. OpenAI 1.0.0, Claude 1.1.1, ihre Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Start-/Session-/Identitäts-/Locale-/Lernzustandsverträge, API-, Speicher- und Datenschutzsemantik, Portalwerte, Reviewfälle, OpenAI-Review-Fixtures und Reviewartefakte bleiben unverändert. Der Portalreview wird weder zurückgezogen noch neu eingereicht. Es erfolgt kein Deployment und keine Wiederaufnahme einer allgemeinen Curriculum-QS.

6.60 Präzisierte Freigabe: Chemie und Biologie als bundesweite Atlanten

Der Product Owner hat am 6. September 2026 ausdrücklich präzisiert, dass Chemie und Biologie dieselben bundesweiten Lernzielatlanten wie Mathematik und Physik erhalten sollen, nicht die in Abschnitt 6.59 beschriebenen einzelnen LK-/GK-Kompositionsbücher. Die öffentlichen Publikations-IDs lauten deshalb de-gym-chemie-bundesweit und de-gym-biologie-bundesweit. Dies ist eine konkrete Freigabe der öffentlichen Buchauswahl und ihrer Integration, keine pauschale Neubasierung aufgrund der mechanischen Testdatenfreigabe aus Abschnitt 6.58.

Beide Atlanten verwenden den bestehenden nativen Manifest-, Navigations-, Geltungs- und Publikationspfad. Die Manifeste binden die buchlokal aus vorhandenen geprüften Quellenzuordnungen erzeugten Kompositionsansichten aller 16 Bundesländer; die getrennte kanonische Buchnavigation hat den Umfang DE/CrossStage, ohne Beschränkung auf GK oder LK. Der äußere Buchumfang bleibt wie bei Mathematik und Physik allein schoolForm: Gymnasium. Geltungszeilen und Dauer-/Kursprofile werden aus den gebundenen Quellen und der fachbezogenen Dauerregelung abgeleitet, nicht durch pauschale Zuschreibung einer bundesweiten Geltung an jedes Ziel.

Stufe und Kursprofil bleiben an explizite Quellangaben gebunden. Für Chemie in Brandenburg und Berlin bleibt die eng begrenzte Profilzuordnung aus vier exakten bestehenden Landesansichten als Quellenkontext ausgewiesen; es gibt keine generische Profilableitung. Die belegte Biologie-Geltung in Sekundarstufe II bleibt auf Hessen und Bayern begrenzt. 18 gewöhnliche Chemieziele bleiben bis zu einer autoritativen Geltungszuordnung außerhalb des Atlas; ihnen werden keine erfundenen Bundesland-, Stufen- oder Kursprofilzuordnungen gegeben.

BookModel, PDF, Render-Manifest, Originalquellen-Metadaten und öffentlicher Index werden konsistent für die beiden tatsächlichen Atlanten gebaut. Die Mathematik- und Physik-Artefakte bleiben unverändert. Quellenbelege bleiben ziel- und geltungszeilenbezogen; eine fehlende Einzelzuordnung wird weiterhin als fehlend angezeigt. Bundesweite Darstellung ist keine Behauptung einer lückenlosen fachlichen Quellen- oder Human-Review-Abdeckung.

Die buchlokalen Typklassifikationen liegen außerhalb der globalen Release-Model-Registry unter curricula/DE/Gymnasium/quality/goal-book-publication/. Sie bleiben reine Knotentypdaten und erteilen keine neue Atomicity-, Human-, Maturity-, Visualisierungs- oder Releasefreigabe. Der vorhandene buchlokale leere Biologie-Visualisierungsinput startet weiterhin keinen Bildrollout.

Das öffentliche Register, die Curricula-Verweise und ihre Regressionen verwenden die neuen IDs. Die vorhandene Buchdarstellung, Cockpit-Aktion und deren Fixture benötigen dafür keine Änderung. Die betroffenen Tests prüfen die nationale Manifest-/Navigationsform, alle 16 Quell- und Geltungsjurisdiktionen, native Originaldokumente und exakte Matrixzeilen sowie fachgebundene, erst beim Öffnen der Matrix geladene Quellen. Quellenlücken bleiben sichtbar. Publikationsintegrität, falsche Hashbindungen, Datenschutz- und Package-Consumer-Isolation werden nicht gelockert.

Der Current-Binding-Lookup behält exakt bookId und goalId; der bestehende Feedbackweg behält exakt bookId, goalId, edition, goalFingerprint, pageFingerprint, bookDigest und page. Kein Prefetch, zusätzliche Übertragungsdaten oder automatische Umschreibung alter Buchbindungen wird eingeführt. Der browserlokale Cockpit-Herkunftsmarker und Rücksprung sowie die bestehenden Backend-Regeln bleiben unverändert.

Der vorhandene Publikationsprüfer verlangt für Chemie und Biologie zusätzlich verpflichtend den zum Buchconfig gehörenden .inputs.json-Companion. Der native Quelleninput-Checker vergleicht daraus erzeugte Ansichten, Manifest, Navigation und Herkunftsbeleg erneut mit den aktuellen Quellen- und Mappingbytes, auch bei der Deployment-Publikationsprüfung. Fehlender, veralteter oder unpassender Input wird nicht übersprungen. Buch-ID, Landschaft, Typ-Ledger und Quellenmanifest müssen exakt zum nativen Buchconfig passen; die tatsächlich publizierten Projektionspfade müssen zum geprüften Ausgabesatz gehören. Alle bisherigen Publikationsprüfungen bleiben erhalten.

Append-only neu gebunden werden ausschließlich die tatsächlich geänderten, bereits geschützten app/scripts/testGoalBookPublication.ts, app/scripts/testGoalBookUi.ts, app/scripts/testLearnerGoalFeedbackUi.ts und app/scripts/checkGoalBookPublication.ts sowie dieser Nachtrag. Record, Checker und Regressionserwartung enthalten denselben präzisen neuen Eintrag. Die ungebundenen Runtime-/Backend- Katalogtests, das Buchregister, öffentliche Darstellung und fachliche Buch-/Atlasdaten erhalten keine neuen Pins. Alle früheren Einträge, einschließlich Abschnitt 6.59, bleiben bytegleich; primäre Runtime- und Baumketten werden nicht verändert.

OpenAI 1.0.0, Claude 1.1.1, ihre Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Coach-Berechtigungen und Start-/Session-/Identitäts-/ Locale-/Lernzustandsverträge, API-, Speicher- und Datenschutzsemantik, Portalwerte, Reviewfälle, OpenAI-Review-Fixtures und Reviewartefakte bleiben unverändert. Es erfolgt keine Portalaktion, kein Deployment und keine Wiederaufnahme einer allgemeinen Curriculum-QS.

6.61 Mechanische Buch-Testzahl nach der genehmigten Reihen-Aufteilung

Am 7. September 2026 wird die Vorabfreigabe aus Abschnitt 6.58 für einen gleichartigen, rein mechanischen Fall angewandt. Die bereits geprüfte Layer-A-Aufteilung des zusammengesetzten Reihenziels erhöht das öffentliche Mathematikbuch von 796 auf 797 atomare Zielseiten. Ausschließlich die feste Erwartung verified.model.pages.length in app/scripts/testGoalBookPublication.ts wird von 796 auf 797 korrigiert. Alle anderen Bytes dieser Testdatei bleiben unverändert. Die exakte Prüfung, Negativfälle und Publikations-/Quellenintegrität werden nicht abgeschwächt.

Die bestehende Bindung wird append-only fortgeschrieben:

  • app/scripts/testGoalBookPublication.ts: e2be85c9ae8aa46d4594699e644b50868724103f52263f9d9fd886ce7657f162 → 6c95cf9de67d0a03d4fe562779d71ce6289f3c97c5def211147ad43ea18f5dcd.

Record, Runtime-Checker und Regression binden genau diese Testkorrektur und diesen Dokumentationsnachtrag. Frühere Ausnahmen bleiben unverändert; keine weiteren Dateien werden neu eingefroren. Die Regression prüft außerdem, dass die primären Runtime- und Baumketten unverändert bleiben und der vorherige Testhash durch Rücktausch genau dieser Zahl wiederhergestellt wird.

Dies ist keine neue fachliche Freigabe und keine Änderung der Produktlogik. OpenAI 1.0.0, Claude 1.1.1, Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Start-/Session-/Identitäts-/Locale-/Lernzustandsverträge, Berechtigungen, Speicherung, Sicherheit, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Keine Portalaktion und kein Deployment.

6.62 Lernzielbücher als Build-Artefakte und bereinigte Quellhistorie

Am 7. September 2026 genehmigt der Product Owner ausdrücklich die Umstellung der generierten Lernzielbuch-Publikationen auf Build-Artefakte und die zugehörige Historienbereinigung einschließlich des eingefrorenen OpenAI-Review-Quellcommits. Diese Freigabe ist auf den Publikationsprozess und die sechs im Build- und Migrationsprotokoll genannten PDF-Pfade begrenzt. Sie hebt die übrigen Reviewgrenzen nicht auf.

Quellen, Konfigurationen und Renderer bleiben versioniert. PDFs, BookModels, Quellenindizes, Render-Manifeste und Publikationsindex werden vor dem Build erzeugt und mit den unveränderten vollständigen Publikationsprüfungen geprüft. CI übergibt ein geprüftes Artefakt desselben Commits an seine Konsumenten; ein vollständiger, an Inhalte und Renderumgebung gebundener Cache darf nur nach erneuter Integritätsprüfung verwendet werden.

Die bestehende Feedbackregistry darf bei byte-identischem Modell und identischen vollständigen öffentlichen Seiten ausschließlich einen anderen Render-Manifesthash akzeptieren. Der erste gespeicherte Snapshot samt ursprünglichem Manifesthash und Zeitstempel bleibt unverändert. Dieser Nachweis bezeichnet die erste Publikation, nicht die Bytes jeder späteren PDF-Neurenderung. Manipulierte Modellbytes, Seitenbindungen und inkonsistente gespeicherte Fingerprints bleiben Fehler. Acht zusätzliche Regressionstests und die unveränderten bisherigen Feedbacktests sichern diesen eng begrenzten Kompatibilitätsfall ab. Es gibt keine neue API, Datenbankmigration oder zentrale Speicherung von Klasseninformationen.

Der ursprüngliche Einreichungsnachweis submittedSourceCommit bleibt ff3a16b0d6e3c8a564176ab4743e777cddf3e79c; sein bereinigtes Äquivalent ist 7fef7a0d9d4dbcd78101848b75774c8f6ee1335a. Alle übrigen Dateien dieses Commits und alle 28 gebundenen Snapshot-/Plugin-/Videoartefakte sind byte-identisch geprüft. Die vollständige Commit-Zuordnung und die signierten Originalcommits bleiben extern gesichert. Der veröffentlichte Branch wird nur nach erneutem Remotevergleich mit exakter Lease ersetzt; gh-pages bleibt unverändert.

Record, Runtime-Checker und Regression schreiben ausschließlich die bestehenden Supplemental-Bindungen für AGENTS.md, app/package.json, CI-Workflow, GoalFeedbackPublicationRegistry.java und diesen Nachtrag append-only fort. Frühere Ausnahmen, primäre Runtime- und Baumketten sowie die festen Buchtests bleiben unverändert. Die Ausnahme bindet die sechs erlaubten Historienpfade und die alte/neue Quellcommit-Zuordnung ausdrücklich; keine neuen Dateien werden in den Review-Freeze aufgenommen.

OpenAI 1.0.0 und Claude 1.1.1, Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Coach-Start, Sessions, Identitäten, Locale, Lernzustände, Berechtigungen, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Keine Portalaktion oder Neueinreichung. Die Git-Veröffentlichung ist kein Produktionsdeployment; bestehende Produktionsklone benötigen zuvor die separat dokumentierte Historienmigration. Die Curriculum-QS bleibt pausiert.

6.63 Inhaltlich geprüfte Umlaut-Einzelfälle statt pauschaler Ersetzung

Am 7. September 2026 beanstandet der Product Owner ausdrücklich Fotöffekt im Physik-Lernziel cb0e05ff-e47d-55e7-bd5b-f8d78f2cb91f und verlangt eine dauerhafte Einzelfallprüfung aller vorgeschlagenen ae-/oe-/ue-Umstellungen. Richtig ist Fotoeffekt: Foto und Effekt behalten ihre getrennten Buchstaben. Die Prüfung findet daneben echte gleichartige Fehler in Reibungs- und Schwächungskoeffizienten.

Die eng begrenzte Layer-A-Korrektur erfasst 27 einzeln gelesene und mit vollständigem Vorher-/Nachher-Text sowie Prüfsummen dokumentierte Felder in elf Physikknoten. IDs, Kanten, Zahlen, Formeln und Kompetenzumfang bleiben unverändert. Nur die betroffenen bestehenden Evidenzfingerprints und die Textbindung des Visualisierungsprompts werden konsistent fortgeschrieben; die Bildbytes, Bildfreigaben und historischen Reviewpakete bleiben unverändert. Der Einzelfallbeleg ist keine erneute fachliche Gesamtfreigabe. Die regulären Maturity-Gates gelten weiterhin unverändert.

AGENTS.md schreibt die inhaltliche Prüfung jedes vorgeschlagenen Wortes und Textfeldes vor. Die neue CI-Prüfung meldet ausschließlich bereits geprüfte Fehlkonversionen, ohne Texte zu verändern; sie ist weder ein allgemeines Wörterbuch noch ein Ersatz für die Einzelfallprüfung. Regressionstests sichern korrekte Fachbegriffe, echte Umlaute, Namen und mehrdeutige Buchstabenfolgen gegen eine erneute pauschale Umstellung ab.

Record, Runtime-Checker und Regression binden append-only die bereits geschützten Dateien AGENTS.md, .github/workflows/ci.yml und diesen Nachtrag. Keine primäre Runtime- oder Baumkette und keine frühere Ausnahme wird geändert; keine neue Datei wird eingefroren. OpenAI 1.0.0, Claude 1.1.1, ihre Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Start-/Session-/Identitäts-/ Locale-/Lernzustandsverträge, Speicherung, Berechtigungen, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Keine Neueinreichung und keine Wiederaufnahme der allgemeinen Curriculum-QS.

6.64 Explizite Druckschriften für den Quellenbuild

Beim genehmigten Produktionsaufbau am 7. September 2026 stoppt das unveränderte harte Layoutgate vor dem Neustart: Rocky löst die bestehenden CSS-Familien Arial und Courier New ohne Liberation-Schriften auf Noto auf. Ein gezielter Vergleich desselben Modells/Renderers und Chromium-Builds zeigt an den zwei betroffenen Mathematikseiten 9 bzw. 13 Pixel Relationsüberlauf; mit den lokal verwendeten Liberation-Schriften passen beide Seiten.

Der Aufbau prüft deshalb vor jedem Rendern und jeder Cacheverwendung explizit Arial → Liberation Sans sowie Courier New → Liberation Mono, jeweils Regular, Bold, Italic und Bold Italic mit tatsächlichem Gewicht und Neigung. Andere Familien oder fehlende Schriftschnitte scheitern früh mit konkretem Installationshinweis. Bestehende Fontdateihashes und Layoutgates bleiben unverändert verbindlich. CI installiert fonts-liberation ausdrücklich; Produktion darf die geprüften vollständigen Schriftdateien samt Lizenz als reguläre Benutzerfonts verwenden. Das ändert weder Renderer, CSS, Seitenbudget noch Freigaben und weicht kein Overflow-Gate auf.

Diese eng begrenzte Umsetzung gehört zur expliziten Freigabe aus Abschnitt 6.62, den Quellenbuild einschließlich Produktionsumstellung vollständig funktionsfähig abzuschließen. Die neue Preflight-Regression umfasst passende Familien, Noto-Fallback, fehlende Schriftschnitte und fehlendes Fontconfig. Append-only fortgeschrieben werden ausschließlich die bestehenden Supplemental-Bindungen von .github/workflows/ci.yml und diesem Nachtrag; keine neue Datei wird eingefroren. Frühere Ausnahmen, primäre Runtime- und Baumketten, eingereichte OpenAI-/Claude-Pakete, MCP/OAuth/Tools/Schemas, MCP-Apps-Ressourcen, Start-/Session-/Identitäts-/Locale-/Lernzustandsverträge, Speicher-/Sicherheitssemantik, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Keine weitere Historienumschreibung, keine Neueinreichung und keine Wiederaufnahme der allgemeinen Curriculum-QS.

6.65 Stabile Kursplanung nach fachlichen Updates und beim Fachwechsel

Am 8. September 2026 meldet der Product Owner nach dem Update weiterhin inhaltlich gültige Mathematik- und Physikpläne als fälschlich nicht berechenbar, einen dadurch abgewiesenen Abschnittsspeichervorgang und den Rücksprung zur Kursorganisation beim Fachwechsel. Die angeforderte Korrektur betrifft ausschließlich diese bestehenden First-Party-Trainerabläufe und ihre Regressionsevidenz; sie ergänzt die Kompatibilitätskorrektur aus Abschnitt 6.54.

Die lokale landschaftsweite Planungsbasis speichert den früheren Katalog samt damaliger Offen-/Gemeistert-Zuordnung. Ein inzwischen entfallenes oder in einen Cluster umgewandeltes Atom dieses historischen Katalogs macht nicht mehr pauschal jeden Abschnitt ungültig. Jeder geplante Abschnitt wird weiterhin gegen seine heutige Zielreferenz und die aktuellen sichtbaren Hierarchiekanten aufgelöst. Für die Berechnung bleiben ausschließlich die dabei enthaltenen ursprünglich erfassten Ziele und deren erfasste Offen-Zuordnung maßgeblich. Neue Atome werden nicht stillschweigend aufgenommen. Fehlende tatsächlich referenzierte Ziele, ungültige Hierarchien und Abschnitte ohne passende erfasste Ziele bleiben Fehler. Die Formprüfung der Basis und die strengere Referenzprüfung alter fokusgebundener Basen bleiben erhalten.

Lesen und Vorschau verändern weder Basis, Blöcke, Titel, Termine, Revisionen noch persönliche Lernpläne. Das ausdrücklich ausgelöste lokale Speichern funktioniert wieder für gültige Abschnitte und behält seine bisherige Revisionshistorie. Die Übernahme beim Schüler bleibt eine getrennte bestätigte Aktion; Statusvergleich, Aktivierungsprüfung und Backend-Verträge bleiben unverändert. Die Browserregression prüft einen inzwischen entfallenen, früher gemeisterten Basiseintrag, unveränderten Aktivierungsstatus und Kennzahlen, unveränderte Daten beim Öffnen sowie genau eine lokale Speicherrevision ohne erneute Publikation.

Beim Wechsel zwischen Mathematik und Physik bleibt der bestehende Kursraum geöffnet, bis die Zielroute zur angeforderten Fachkonfiguration gehört und deren Komposition verfügbar ist. Eine kurzzeitig noch vorhandene Route des vorherigen Fachs darf den Öffnungszustand nicht vorzeitig aufheben. Die echte App-Browserregression prüft den Fachwechsel mit verzögert eintreffenden Kompositionsdaten sowie die bestehenden Entwurfs- und Navigationsgrenzen.

Record, Runtime-Checker und Regression setzen ausschließlich die bestehenden Supplemental-Bindungen von localTeacherCoursePlan.ts, seinem Unit-Test, testTrainerCoursePlanUi.ts, TrainerView.tsx und diesem Nachtrag append-only fort. Der bisher ungebundene testTrainerNavigationUi.ts bleibt ungebunden. Frühere Ausnahmen, primäre Runtime- und Baumketten sowie die Menge geschützter Dateien bleiben unverändert. OpenAI 1.0.0, Claude 1.1.1, ihre Pakete, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Provider-Startabläufe, Prepared Messages, Session-/Identitäts-/Locale-/Lernzustandsverträge, Berechtigungen, Speicherung, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Kein Deployment, keine Portalaktion, keine Neueinreichung und keine Wiederaufnahme der allgemeinen Curriculum-QS.

6.66 Claude-Installation wieder per Download und Upload

Der Product Owner hat am 8. September 2026 die weiterhin unzuverlässige Marketplace-Installation beanstandet und ausdrücklich verlangt, die First-Party-Anleitung unter /plugins wieder auf Herunterladen und Hochladen der Plugin-Datei umzustellen. Diese konkrete Guide-Entscheidung ersetzt die Marketplace-Empfehlung aus Abschnitt 6.51. Dessen damalige Freigabe, Veröffentlichung und Nachweise bleiben unverändert dokumentiert.

Die deutsche und englische Anleitung führt durch den vorhandenen Download des unveränderlichen Claude-Pakets 1.1.1, das gezielte Entfernen einer älteren SkillPilot-Installation bei einem Wechsel, den Datei-Upload in Claude, die Verbindung des gebündelten SkillPilot-Konnektors und die Rückkehr zu SkillPilot für einen neuen Chat. Andere Plugins und Konnektoren bleiben unberührt. Es gibt keinen zusätzlichen manuellen MCP-Eintrag. Die bisherige Marketplace-Empfehlung und die Repository-Kopieraktion entfallen; die Suchmaschinenbeschreibung der vorhandenen /plugins-Route beschreibt denselben Dateiablauf. Die Downloadprüfung bindet weiterhin exakt Version 1.1.1 und SHA-256 b4bfa8122812bf1ad0430e6b02932b89e29b107c7a831cebf994da010c359351.

Im bestehenden Marketplace-Record erhält ausschließlich die aktuelle Guide-Entscheidung den Status withdrawn. Ihr ursprünglicher Freigabezeitpunkt, Entscheider, Kandidat, Paketdigest, Repository-Commit, Tree-Digest und Belegverweis bleiben erhalten. Der Validator prüft diese Herkunftsbindungen auch im zurückgezogenen Zustand vollständig. Daraus folgen marketplaceUiSwitchAllowed = false und firstPartyUiRoute = controlled_direct_install_beta; ein zurückgezogener Guide kann den Marketplace nicht erneut aktivieren. Die Rücknahme betrifft die Empfehlung, nicht die veröffentlichte Repository-Historie. Der Status published_pending_acceptance, sämtliche externen Evidenzeinträge und alle offenen Abnahme- und Readiness-Gates bleiben unverändert.

Die Anleitung verlangt den manuellen Vergleich der installierten Version in Claude mit der angezeigten Downloadversion. Sie behauptet weder, die Webseite könne die im Claude-Account installierte Version auslesen, noch automatische Updates hochgeladener Dateien. Die zusätzlich angefragte Untersuchung einer Versionserkennung oder Aktualisierung bleibt reine Recherche. Diese Änderung ergänzt keine Versionssignale, API, Konnektor-Metadaten, Backend-Felder oder Laufzeitverträge und veröffentlicht keinen neuen Plugin-Kandidaten.

Record, Runtime-Checker und Regression setzen ausschließlich die bestehenden Supplemental-Bindungen der Anleitung, ihrer Veröffentlichungslogik und Tests, der /plugins-Metadaten in App.tsx und ihrer Routenregression, des Marketplace-Records, Validators und seiner Tests, des Marketplace-Runbooks sowie dieses Nachtrags append-only fort. Die bestehende Bindung von app/package.json wird ebenfalls fortgeführt: Der bereits in CI ausgeführte Befehl test:claude-plugin-publication startet nach der Copy-Regression auch den neuen Browsertest. Der vorhandene CI-Job installiert Chromium bereits vorher; Dependencies, Lockfiles und CI-Workflow bleiben unverändert. Neue Browser- oder Recherchedateien bleiben ungebunden. Der bestehende Konzeptindex erhält ausschließlich den fehlenden Link auf runtime-workflows/course-plan-update-continuity.md; auch seine vorhandene Supplemental-Bindung wird fortgeführt. Der Link ändert keine Planungs-, Curriculum- oder Laufzeitsemantik. Frühere Ausnahmen, primäre Runtime- und Baumketten sowie die Menge geschützter Dateien bleiben unverändert. OpenAI 1.0.0, Claude 1.1.1, ihre Paket- und Artefaktbytes, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Provider-Start-Handler, Prepared Messages, Session-, Identitäts-, Locale-, Lernzustands-, Datenschutz-, Speicher- und Berechtigungssemantik, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Kein Deployment, keine externe Veröffentlichung, keine Portalaktion, keine Neueinreichung und keine Wiederaufnahme der allgemeinen Curriculum-QS.

6.67 Zwei Claude-Hinweiskarten ersatzlos entfernen

Der Product Owner verlangt am 8. September 2026 ausdrücklich, die gezeigte Android-/Oberflächenkarte und die Voice-Mode-Abnahmekarte unter /plugins ersatzlos zu entfernen. Sein Hinweis auf das tatsächlich verwendete iPhone des Betatesters beschreibt dessen Gerät; er ist keine neue iOS-Supportzusage oder kandidatengenaue Plattformabnahme.

Die Korrektur beschränkt sich in PluginCatalogView.tsx auf die beiden Listeneinträge, die ausschließlich dafür verwendeten deutschen und englischen Copyfelder sowie die dadurch ungenutzten Smartphone- und Volume2-Imports. Der zugehörige Publikationstest entfernt ausschließlich die zwei bisherigen Assertions, die diese Android- und Voice-Mode-Texte auf der Seite verlangten; seine Parser- und Metadatenassertions bleiben unverändert. Es gibt keine Ersatzkarte. Der vorhandene Download-/Upload-Ablauf, seine Versions- und Integritätsprüfung, Konnektor-Verbindung, Rückkehr zu SkillPilot und alle übrigen Hinweise bleiben unverändert.

Die Publikationsparser und -metadaten einschließlich testedSurfaces und voiceMode, die tatsächlichen Abnahme- und Readiness-Zustände, gespeicherte Nachweise und die Marketplace-Guide-Entscheidung bleiben unverändert. Eine ergänzende Gerätedokumentation im ungebundenen Recherchetext ändert ebenfalls keine dieser Freigaben oder Laufzeitverträge.

Record, Runtime-Checker und Regression ergänzen ausschließlich eine neue Supplemental-Exception für die drei bereits gebundenen Dateien PluginCatalogView.tsx, claudePluginPublication.test.ts und diesen Nachtrag. Abschnitt 6.66, alle historischen Ausnahmen, primären Runtime- und Baumketten sowie die Menge geschützter Dateien bleiben unverändert. OpenAI 1.0.0, Claude 1.1.1, ihre Paket- und Artefaktbytes, MCP/OAuth, Tools, Schemas, MCP-Apps-Ressourcen, Provider-Start, Prepared Messages, Session-, Identitäts-, Locale-, Lernzustands-, Datenschutz-, Speicher- und Berechtigungssemantik, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Kein Deployment, keine externe Veröffentlichung oder Portalaktion, keine Neueinreichung und keine Wiederaufnahme der allgemeinen Curriculum-QS.

6.68 Synchronisierter Kursplan-Browsertest in CI

Der Product Owner beauftragt am 8. September 2026 die Korrektur des fehlgeschlagenen Frontend-CI-Schritts. Im Lauf 34219162158 wartet testTrainerCoursePlanUi.ts nach dem erneuten Öffnen der Planung vergeblich auf den bestehenden Aktivierungsstatus. Derselbe Test läuft lokal wiederholt durch, auch mit gedrosselter Browser-CPU; ein deterministischer fachlicher Statusfehler ist damit nicht nachgewiesen.

Die eng begrenzte Testkorrektur schließt zwei Synchronisationslücken: Der simulierte Server speichert die bestätigte Planrevision vor seiner PUT-Antwort, sodass nachfolgende Listen- und Detailabfragen denselben Stand liefern. Beim Wechsel zu den Lernzielen wartet der Test auf das tatsächliche Unmounten des Planungsbereichs und den sichtbaren Lernzielbaum, bevor er seine lokale historische Testbasis verändert und die Planung erneut öffnet. Die bestehende Assertion „Aktiv für den Schüler“, sämtliche Datenintegritätsprüfungen und das Zeitlimit bleiben erhalten. Bei einem erneuten Fehler werden zusätzlich Route, Aktivierungstext und Browserfehler der rein synthetischen Testsession gemeldet.

Record, Runtime-Checker und Regression führen ausschließlich die vorhandenen Supplemental-Bindungen dieses Browsertests und dieses Nachtrags append-only fort. Produktcode, Curriculum, Planvergleich, Navigation, Speicherverträge, OpenAI- und Claude-Pakete, Providerabläufe, Reviewartefakte, frühere Ausnahmen, primäre Runtime-/Baumketten und die Menge geschützter Dateien bleiben unverändert. Keine Abschwächung einer Assertion, keine neuen Wartepausen oder Testwiederholungen in CI, kein Deployment und keine Wiederaufnahme des pausierten Curriculum-Goals.

6.69 Kompakte Tagesübersicht im Claude Coach 1.1.2

Der Product Owner genehmigt am 8. September 2026 ausdrücklich den lokal vorzubereitenden Patch Claude Coach 1.1.2 ausschließlich für die kompakte Tagesübersicht einschließlich passender Serveranweisungen und Regressionen. Die Standarddarstellung nennt einmal die insgesamt aktuell beherrschten von den heute neu fälligen Zielen und danach nur die offenen Ziele je Fach, etwa: „Heute: 2 von 48 geschafft · noch offen: 19 Mathe, 27 Physik.“ Ein positiver Rückstand wird separat angehängt; Null-Rückstände und redundante Fachzähler entfallen. Ausführliche Fachzahlen gibt es auf ausdrückliche Nachfrage.

Die Zahlen stammen unverändert aus dem neuesten autoritativen Kontext. completedToday bleibt eine Bestandszahl, keine Historie heutiger Lernereignisse. Nicht auswertbare Pläne bleiben als fehlende Anteile erkennbar; ihre internen Details werden nicht offengelegt. Die Regeln für Visualisierung vor Sprache, Statusfragen, Pause, Fortsetzen, Fachwechsel und tatsächlichen Tagesabschluss bleiben unverändert. Die Kurzform „Mathe“ ist ausschließlich Darstellung; Toolargumente behalten den exakten vom Backend veröffentlichten Fachnamen.

Die Änderung betrifft nur die Claude-Skill-/Policytexte, die entsprechenden isolierten Claude-Serveranweisungen und ihre Tests. Manifest, Dokumentation, Versionsanzeige und lokale Artefakt-/Vertragsbindungen werden für 1.1.2 konsistent fortgeführt. Der lokale Downloadindex verweist nach Vorbereitung auf das neue additive Artefakt; dies ist noch keine Produktionsaktivierung. Die veröffentlichten 1.1.1-Artefaktbytes bleiben unverändert, die bisherigen Release-Metadaten werden als unveränderliche Historie archiviert. Externe, kandidatengenaue Abnahmen und Marketplace-Veröffentlichung für 1.1.2 bleiben offen; alte Freigaben werden nicht übertragen.

Die neue Connector-Baseline übernimmt außerdem die bereits zuvor genehmigten und unverändert eingecheckten Hashes von app/package.json, app/scripts/testRootRoutePolicy.ts und app/src/App.tsx. Ihre alten Connector-Bindungen waren hinter der bestehenden Freeze-Kette zurückgeblieben; die drei Dateien selbst werden in diesem Paket nicht geändert.

Die historischen Guide-Regressionen prüfen weiterhin dieselben vollständigen Rückwärts-Hashvergleiche gegen die archivierten 1.1.1-Marketplace-Metadaten und eine bytegleiche Testquell-Fixture. Die aktuellen 1.1.2-Parser- und Browserregressionen werden unabhängig davon ausgeführt.

Record, Runtime-Checker und Regression ergänzen eine eng begrenzte Supplemental-Exception mit den konkreten geänderten und neuen Claude-Kandidaten-, Test-, Release- und Dokumentationsdateien. Alle früheren Ausnahmen und primären OpenAI-Runtime-/Baumketten bleiben unverändert. Der eingereichte OpenAI Coach 1.0.0 und der ruhende OpenAI-1.1-Kandidat bleiben unverändert, ebenso Tooldaten und -schemas, MCP/OAuth, Provider-Start, Prepared Messages, Session, Identität, Locale, Lernzustand, Datenschutz, Speicherung, Berechtigungen, Portal, Reviewfälle, Fixtures und Reviewartefakte. Keine externe Veröffentlichung, kein Push, kein Deployment und keine Wiederaufnahme des pausierten Curriculum-Goals.

6.70 Claude 1.1.2 im bestehenden Marketplace veröffentlichen

Der Product Owner verlangt am 9. September 2026 ausdrücklich, die bereits vorbereitete Version Claude Coach 1.1.2 tatsächlich über den bestehenden Marketplace und unter dem normalen Namen bereitzustellen. Die Freigabe aus Abschnitt 6.69 wird dafür ausschließlich um die Veröffentlichung des unveränderten Pakets im Repository https://github.com/enpasos/skillpilot-claude-marketplace und die zugehörige Release-Dokumentation und Repository-Evidenz erweitert.

Die Identitäten bleiben skillpilot-marketplace, skillpilot-coach-v1 und SkillPilot Coach v1. Ein diagnostischer Katalogname mit Versionsnummer oder Zeitstempel ist nicht Bestandteil der Veröffentlichung. Der Product Owner stellt klar, dass die gemeldete Synchronisierung auf 1.1.1 erst nach Verwendung der Repository-URL mit ?v=2 erfolgte. Das bleibt ein berichteter Workaround dieses Accounts und belegt weder automatische Synchronisierung durch einen geänderten Katalognamen noch eine erfolgreiche 1.1.2-Aktualisierung.

Freigegeben sind ausschließlich die normalen Veröffentlichungstexte in den Marketplace-Templates README.md und CHANGELOG.md, das Marketplace-Runbook, der aktuelle Marketplace-Evidenzrecord und seine Regression. Die sechs Paketdateien sowie die unveränderlichen 1.1.1- und 1.1.2-Downloadartefakte bleiben bytegleich. Für 1.1.2 gilt weiterhin SHA-256 835c91844f950d9101f74ef245916fc6a7d65f53426ae3939f3a224f7ab827ca bei 55.266 Bytes. Die öffentlichen Downloadbytes und der Index wurden bereits geprüft; dieses Änderungspaket führt kein Deployment aus.

Nach grünen lokalen, Integritäts- und öffentlichen Prüfungen darf der erzeugte geschlossene Publikationsbaum über einen Repository-Pull-Request veröffentlicht werden. Erst die anschließende erfolgreiche Prüfung des tatsächlichen öffentlichen Default-Branch erlaubt, ausschließlich public-repository-default-branch mit seinem exakten Commit, Tree-Digest, Kandidatendigest und Beleg auf pass zu setzen. Der Status lautet dann published_pending_acceptance. Accountinstallation, Migration und Aktualisierung, kandidatengenaue Client-Abnahmen, Datenschutz-, Legal- und Support-Gates bleiben offen. Die First-Party-Guide-Entscheidung bleibt pending, die Download-/Upload-Anleitung unverändert; es gibt keine erneute Marketplace-Empfehlung im WebGUI.

Record, Runtime-Checker und Regression ergänzen eine einzige eng begrenzte Supplemental-Exception für diese Release-Dateien und diesen Nachtrag. Alle früheren Ausnahmen, primären Runtime-/Baumketten und vorhandenen Paket- und Release-Baselines bleiben erhalten. OpenAI Coach 1.0.0 sowie der ruhende OpenAI-1.1-Kandidat, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Provider-Start, Prepared Messages, Session-, Identitäts-, Locale-, Lernzustands-, Datenschutz-, Speicher- und Berechtigungsverträge, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Der OpenAI-Portalreview wird weder zurückgezogen noch neu eingereicht. Kein App-Deployment und keine Wiederaufnahme des pausierten Curriculum-Goals.

6.71 Aktuelle veröffentlichte Claude-Version im WebGUI anzeigen

Der Product Owner verlangt am 9. September 2026 zusätzlich, dass das WebGUI die jeweils aktuell veröffentlichte Claude-Plugin-Version anzeigt. Die Versionsangaben der bestehenden /plugins-Anleitung werden deshalb aus dem bereits vorhandenen, validierten öffentlichen Veröffentlichungsindex abgeleitet. Ein neuer kompatibler Indexstand benötigt danach keine manuelle Aktualisierung der deutschen und englischen Versionsliterale im Frontend.

Die Änderung ist auf PluginCatalogView.tsx, app/src/utils/claudePluginPublication.ts, dessen bestehende Regression und app/scripts/testClaudePluginInstallUi.ts begrenzt. Sämtliche sichtbaren Versionsangaben einschließlich Titelzusatz, Badge, Vergleichs-, Download- und Einrichtungstexten verwenden dieselbe validierte Indexversion. Lade-, Fehler- und Leerzustände zeigen keine erfundene oder veraltete Versionsnummer.

Der Parser akzeptiert kanonische stabile Versionen der kompatiblen Linie 1.x ab 1.1.2; diese Untergrenze ist ein Kompatibilitätslimit und keine Behauptung über die aktuelle Veröffentlichung. Frühere, nichtkanonische, Vorab- und inkompatible Major-Versionen werden weiterhin abgewiesen. Die Prüfungen für Pluginidentität, Kandidatenpfad, Versions-, Dateinamen- und SHA-256-Bindung, Herkunft, HTTPS-/Downloadgrenzen und bestehende Betaanforderungen bleiben erhalten. Die Regressionen prüfen die exakte lokale Releasebindung getrennt von der Annahme eines späteren kompatiblen Indexstands.

Die Webseite liest damit ausschließlich die von SkillPilot bereitgestellte Version. Sie erkennt weiterhin nicht die im Claude-Account installierte Version und aktualisiert kein installiertes Plugin. Die fünf vorhandenen Download-/Upload-Schritte, der gebündelte Konnektor, die manuelle Prüfung in Claude und die Rückkehr zu SkillPilot bleiben bestehen. Die Marketplace- Veröffentlichung und ihre Evidenz aus Abschnitt 6.70 sowie alle offenen Account-, Guide- und Abnahmeentscheidungen bleiben unverändert.

Record, Runtime-Checker und Regression ergänzen eine getrennte Supplemental-Exception für genau diese vier bereits gebundenen Dateien und diesen Nachtrag. Sie schreiben keine frühere Ausnahme oder historische Hashbindung um und ändern weder die Menge geschützter Dateien noch primäre Runtime-/Baumketten. Pluginpakete und Release-Baselines, OpenAI Coach 1.0.0 und der ruhende OpenAI-1.1-Kandidat, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Provider-Start, Prepared Messages, Session-, Identitäts-, Locale-, Lernzustands-, Datenschutz-, Speicher- und Berechtigungsverträge, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Der OpenAI-Portalreview benötigt weder Rücknahme noch Neueinreichung. Kein neues Pluginpaket und kein App-Deployment sind Teil dieses lokalen Änderungspakets.

6.72 Marketplace-Anleitung mit manuellem Update und Datei-Fallback

Der Product Owner beauftragt am 9. September 2026 ausdrücklich, die Installations- und Updateanleitung anhand seiner Dokumentationsübergabe r2 zu überarbeiten und die empfohlene Gestaltung direkt umzusetzen: Der persönliche Git-Marketplace wird wieder der erste Weg; Herunterladen und Hochladen der aktuellen Plugin-Datei bleibt als klar bezeichneter Fallback erreichbar. Diese aktuelle ausdrückliche Implementierungsfreigabe ersetzt ausschließlich die frühere Beschränkung der Übergabe auf Dokumentation und die zuletzt zurückgestellte First-Party-Guide-Entscheidung. Die Übergabe selbst erteilt weiterhin keine technische Account- oder Releaseabnahme.

Die deutsche und englische /plugins-Anleitung unterscheidet Neuinstallation, Aktualisierung einer bestehenden Marketplace-Quelle und Datei-Upload. Der beobachtete reine Navigationslink https://claude.ai/new#customize/plugins/discover öffnet die Plugin-Übersicht; er enthält weder Lernsession noch sonstige Zugangsdaten und führt selbst keine Installation oder Aktualisierung aus. Als Alternative bleibt der manuelle Einstieg über Claudes Plugin-Bereich beschrieben. Der konkrete Updateweg lautet Hinzufügen oben rechts → Marketplaces verwalten → ⋮ am SkillPilot-Marketplace → Nach Updates suchen. Die kanonische Repository-Adresse bleibt unverändert und ohne Query-Parameter; ?v=2 ist ausschließlich ein historischer Nutzerbericht, keine Installationsvorgabe.

Die Anleitung prüft angebotene und tatsächlich installierte Version getrennt. Der Inhalts-Versionswähler ist kein Nachweis einer aktualisierten Installation oder eines Rollbacks. Versionstexte und Dateidownload bleiben an denselben validierten dynamischen Veröffentlichungsindex gebunden. Bei dessen Ausfall bleiben die Marketplace-Navigation und ihre Grenzen sichtbar; eine aktuelle Versionsnummer oder ein Dateidownload wird dann nicht erfunden. Die bestehenden Herkunfts-, SemVer-, Dateinamen-, Größen- und Digestpfadprüfungen bleiben erhalten. Für beide Installationswege gelten anschließend dieselbe Prüfung des enthaltenen SkillPilot-Konnektors und die Rückkehr zu SkillPilot für den bereits bestehenden Lernstart.

Die Anleitung fordert keine GitHub-App-Freigabe durch Lernende und behauptet keine zuverlässige kontoübergreifende Automatik. Sie trennt die angeforderten GitHub-Schreibrechte von der SkillPilot-Konnektor-Verbindung. Entfernen einer Marketplace-Quelle ist kein Standardupdateschritt; auf die Deinstallation ihrer Plugins wird hingewiesen. Beim nötigen Installationswechsel bleibt die Bereinigung auf die konkrete SkillPilot-Plugininstanz begrenzt; andere Plugins, Quellen und Konnektoren bleiben unangetastet. Es werden keine Claude-Konten, GitHub-Berechtigungen oder laufenden Installationen verändert.

Die separate Guide-Entscheidung wird um 2026-09-09T08:02:01.000Z an die bereits verifizierte Repository-Revision 25bf4d8272030a3701008f7b5a09d4a18cba15c5, ihren Tree-Digest und das unveränderte 1.1.2-Artefakt gebunden. Nur daraus folgen marketplaceUiSwitchAllowed = true und firstPartyUiRoute = personal_git_marketplace. published_pending_acceptance, die vollständige bestehende Repository-Evidenz und alle offenen Accountinstallations-, Migrations-, Update-, Client-, Datenschutz-, Legal- und Supportnachweise bleiben unverändert. openPublicBetaReady bleibt false. Insbesondere belegen die historischen Screenshots von 1.1.1 keine vollständige 1.1.2-Abnahme.

Record, Runtime-Checker und Regression ergänzen genau eine append-only Supplemental-Exception für die bereits gebundenen Guide-, Metadaten-, Test- und Runbook-Dateien sowie diesen Nachtrag. Frühere Ausnahmen, primäre Runtime-/Baumketten und die Menge geschützter Dateien bleiben unverändert. Die veröffentlichten sechs Plugin-Dateien, Downloadartefakte, öffentliche Marketplace-Quelldateien und ihre Releasebindungen werden nicht verändert. OpenAI Coach 1.0.0 und der ruhende OpenAI-1.1-Kandidat, MCP/OAuth, Tools, Schemas, MCP-Apps-UI, Provider-Start, Prepared Messages, Session-, Identitäts-, Locale-, Lernzustands-, Datenschutz-, Speicher- und Berechtigungsverträge, Portalwerte, Reviewfälle, Fixtures und Reviewartefakte bleiben unverändert. Keine neue Pluginversion, externe Veröffentlichung, App-Bereitstellung, Portalaktion oder Wiederaufnahme des pausierten Curriculum-Goals.