Files
breakpilot-compliance/backend-compliance/compliance/transition_reasoning/__init__.py
T
Benjamin Admin 77de7e794c feat(transition): Transition Reasoning v0 (RS-005) — Transition Planning Engine
Second reasoning mode, scope per user: the engine owns the INFORMATION GAPS, not the
questions. assess_transition(context, target_requirements, company_profile) emits
ranked TransitionQuestionRequest {capability, control, reason, question_intent,
expected_evidence, priority, information_gain} -- NOT rendered question text. Rendering
(intent+subject->sentence) is a separate swappable layer (RS-005.1), not here.

Consumes the Company Capability Profile (2A) as "have" + injected TargetRequirement
(Execution-owned placeholder) as "required" -- no required-capability data in product
code (EMPTY_REQUIREMENTS, mocks only in tests). A certification-derived capability is
probably_covered (Welt 1) -> a confirmation request, never already_covered/"erfuellt".
Deterministic, computed-not-stored, no percentages.

Activates 2A/2C/RCI (first consumer of the Company profile). Freeze-respecting: additive
package, no new graph/base class/meta-model class. 9 tests, mypy --strict clean, LOC ok.
No endpoint/UI/RAG; question rendering deliberately deferred to RS-005.1.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-27 07:31:11 +02:00

43 lines
1.2 KiB
Python

"""Transition Reasoning v0 (RS-005) — the Transition Planning Engine.
Answers „Was muss ich noch wissen, um vom Ausgangs- in den regulatorischen
Zielzustand zu kommen?". Owns the **information gaps** (`TransitionQuestionRequest`),
NOT the rendered questions (rendering = separate RS-005.1 layer).
Consumes the Company Capability Profile (2A) as „have" + injected `TargetRequirement`
(Execution-owned placeholder) as „required". Spec: docs-src/architecture/transition-reasoning-spec-v1.md.
"""
from __future__ import annotations
from .engine import EMPTY_REQUIREMENTS, assess_transition
from .schemas import (
CapabilityCoverage,
CoverageStatus,
InformationGain,
RequestPriority,
TargetRequirement,
TargetType,
TransitionAssessment,
TransitionContext,
TransitionGoal,
TransitionQuestionRequest,
TransitionSummary,
)
__all__ = [
"assess_transition",
"EMPTY_REQUIREMENTS",
"TransitionContext",
"TransitionGoal",
"TargetType",
"TargetRequirement",
"TransitionQuestionRequest",
"CapabilityCoverage",
"CoverageStatus",
"RequestPriority",
"InformationGain",
"TransitionSummary",
"TransitionAssessment",
]