From db2efe9f52ef07288745f0813eb82309d3b854c8 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Sat, 27 Jun 2026 07:37:50 +0200 Subject: [PATCH] =?UTF-8?q?docs(spec):=20Transition=20Reasoning=20v1.3=20?= =?UTF-8?q?=E2=80=94=20Planning=20Engine=20/=20QuestionRequest=20/=20Rende?= =?UTF-8?q?rer=20split?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aligns the spec with RS-005 v0: the Transition Planning Engine owns the INFORMATION GAPS (TransitionQuestionRequest), not the questions. Chain: Planning Engine -> TransitionQuestionRequest -> Question Renderer (RS-005.1) -> Interview. RS-005.1 (renderer/templates) deliberately deferred; GeneratedQuestion reframed as the renderer's output (a swappable policy layer), not part of the engine. Co-Authored-By: Claude Opus 4.7 --- .../architecture/transition-reasoning-spec-v1.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docs-src/architecture/transition-reasoning-spec-v1.md b/docs-src/architecture/transition-reasoning-spec-v1.md index bb8e7a46..3ab94a28 100644 --- a/docs-src/architecture/transition-reasoning-spec-v1.md +++ b/docs-src/architecture/transition-reasoning-spec-v1.md @@ -1,10 +1,17 @@ -# Transition Reasoning — Spezifikation v1.2 (zweiter Reasoning-Modus) +# Transition Reasoning — Spezifikation v1.3 (zweiter Reasoning-Modus) - **Status:** Proposal / Spec — 2026-06-27. - **v1.1:** Interviewfragen werden **aus den Controls GENERIERT**, nicht als Bibliothek geschrieben. - **v1.2:** **Wissensproduktion durch KI** — LLMs erzeugen den ersten Expertenentwurf (v. a. die Priorisierung je Transition); BreakPilot **reviewt, versioniert und besitzt** die kanonische Bibliothek. Plus die juristische Grenze (Expertenentwurf, kein Normbeweis). +- **v1.3 (Architektur präzisiert):** Die **Transition Planning Engine** besitzt die + **Informationslücken** (`TransitionQuestionRequest`), NICHT die Fragen. Kette: + `Planning Engine → TransitionQuestionRequest → Question Renderer (RS-005.1) → Interview`. + **RS-005 v0 (Planning Engine) GEBAUT** (`compliance/transition_reasoning/`, kein Endpoint, + konsumiert Company 2A + injizierte `TargetRequirement`). **RS-005.1 (Renderer/Templates) bewusst + VERSCHOBEN** — erst Wissensproduktion (kuratierte Transition Patterns in eigener Wissenssession), + dann der Renderer (ohne Inhalte wertlos; Inhalte ohne Renderer sofort wertvoll). - **Scope:** erweitert die Reasoning-Session um einen zweiten Modus; ersetzt nichts. - **Freeze-konform:** additiv, **kein** neuer Graph, **keine** Basisklasse, **keine** Meta-Model-Klasse. Nur ein neues Paket + Daten. @@ -103,8 +110,10 @@ wird erst durch echten Nachweis `confirmed`. - **`TransitionContext`** — `start_state` {company_context, product_profile, known_regulations/certifications, capabilities (2A)} + `target_state` {target_regulation | target_certification | target_framework}. - **`TransitionGoal`** — Ziel (nicht regelwerk-beschränkt); auflösbar zu Obligations → Controls → Required Capabilities. - **`MasterQuestionTemplate`** — `{intent, template_text, answer_type, expected_evidence, version, status, lifecycle}`. -- **`GeneratedQuestion`** (DERIVAT, nicht gespeichert) — `Control × Template`: `{control_id, intent, rendered_text, verifies_capability (MCAP), supports_obligations, expected_information_gain, confidence_impact, follow_up}`. -- **`TransitionAssessment`** (Output, **KEINE** Prozentzahlen) — je Required Capability `status ∈ {already_covered, probably_covered, needs_confirmation, missing, not_applicable, unsupported}` + nächste priorisierte Fragen. +- **`TargetRequirement`** (INJIZIERT, Execution-owned) — `{capability_id (MCAP), question_intent, expected_evidence, source_control_id, supports_obligations, unsupported}`. v0: injiziert; später aus `Obligation → Control → Required Capability` + `Control → question_intent`. +- **`TransitionQuestionRequest`** (das **OWNED Output** der Planning Engine — eine Informationslücke, **KEINE** Frage) — `{capability_id, control_id, reason, question_intent, expected_evidence, priority, information_gain}`. **Kein gerenderter Fragetext.** +- **`TransitionAssessment`** (Output, **KEINE** Prozentzahlen) — je Required Capability `CoverageStatus ∈ {already_covered, probably_covered, needs_confirmation, missing, not_applicable, unsupported}` + die priorisierten `TransitionQuestionRequest`s. +- **`GeneratedQuestion`** *(RS-005.1 Question Renderer — VERSCHOBEN, nicht in v0)* — `Request × (Control/Template) → {rendered_text, …}`. Das Rendern ist eine **austauschbare Policy-Schicht**, nicht Teil der Engine. ## Algorithmus — Delta-Interview als Optimierung