80bf1993e0
The sanctioned last architectural building block. Reverses the order: not Goal -> Journey -> Delta but Goal -> Required -> Delta -> Journey. A Journey is the EXPLANATION of the Capability Delta, not its cause — so this is a Matcher/Explainer, not a Selector. New module compliance/journey_matcher/ = the third independent, interchangeable function of the pipeline, beside Company 2A (Evidence -> Capability) and RS-005 (Capability -> Delta): match_journeys(delta, journeys, context) -> ranked, auditable explanation - Looks ONLY at the Capability Delta — never at certificates, regulation, tenders or the goal. Journey signatures are certificate-agnostic capability clusters (Input -> Output pattern). - score = share of the delta a journey explains (recall over the missing capabilities); journey_only documents where a journey reaches beyond the delta so a broad journey is not silently preferred. - Deliberately dumb + deterministic (pure set overlap; NO ML/embeddings/LLM), fully auditable (matched / unexplained / journey_only / context signals); a learning ranker can sit on top later. - Signatures injected, engine hermetic. mypy --strict clean. Validated on the real patterns (demo): a CRA+MaschinenVO delta ranks the convergence journey 100%, "ISO27001 -> CRA" 56% (misses the machine-safety caps), "ISMS -> TISAX" 0%. This resolves the "Scope -> Journey" jump from Customer Mission #1. Freeze exception explicitly authorised; non-runtime -> no deploy. 12 tests pass, check-loc 0.
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
"""Journey Matcher — the Delta -> Journey function of the Capability Delta Engine.
|
|
|
|
The third independent function of the pipeline (after Company 2A `Evidence -> Capability` and RS-005
|
|
`Capability -> Delta`): given ONLY the Capability Delta, rank the known journeys that best EXPLAIN it.
|
|
A Journey is an EXPLANATION of the delta, not its cause — order is `Goal -> Required -> Delta -> Journey`.
|
|
|
|
Deliberately dumb + deterministic (pure set overlap; no ML/embeddings/LLM), fully auditable, signatures
|
|
INJECTED (certificate-agnostic capability clusters). No new corpus, no graph (freeze v1.0). The Matcher
|
|
is sanctioned as the last architectural building block; everything after is knowledge work.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from .engine import match_journeys
|
|
from .schemas import (
|
|
JourneyMatch,
|
|
JourneyMatchReason,
|
|
JourneyMatchResult,
|
|
JourneySignature,
|
|
MatchContext,
|
|
)
|
|
|
|
__all__ = [
|
|
"match_journeys",
|
|
"JourneySignature",
|
|
"MatchContext",
|
|
"JourneyMatch",
|
|
"JourneyMatchReason",
|
|
"JourneyMatchResult",
|
|
]
|