Semantic plugin
Semantic controller
The semantic controller uses embeddings to select close requirement pairs, then asks the local text model to classify each pair as a duplicate, a contradiction, a compatible relation or an uncertain case.
Processing
Each unordered pair is analyzed once. The prompt contains the two requirement identifiers, their
texts and their source names when available. Results other than NONE are reviewed with the pair in
reverse order. A rejected or inconsistent review is reported as UNCERTAIN instead of forcing a
duplicate or contradiction diagnosis.
The semantic and generative AI project options must both be enabled. The text generator is started only when at least one candidate pair exists and is closed after the controller finishes.
Parameter
Semantic pair analysis threshold: minimum embedding similarity percentage used to select pairs. The accepted range is 75 to 100 and the default is 95.
Results
DUPLICATE: both requirements express essentially the same obligation.CONTRADICTION: overlapping conditions impose obligations that cannot both be satisfied.UNCERTAIN: the supplied texts or the two analyses do not support a stable conclusion.NONE: the requirements are related but compatible; no control error is created.
The generated message contains the model's short reason and the evidence identified in both requirements. Confirmed duplicate pairs connected through a shared requirement are consolidated into one duplicate group and create one control error. Contradictions remain reported per pair because they are not transitive.
A confirmed duplicate is not reported when the user explicitly declared a direct coverage between
the two requirements, in either direction, with status FULL, FRAGMENT or NOT_APPLICABLE.
Such a relation makes semantic proximity normal: a covering requirement may restate or refine the
covered need. Indirect coverage and UNCOVERED or AMBIGUOUS links do not suppress duplicates.
Coverage never suppresses a contradiction.