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.