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 project AI effort can be set to Semantic, Generative moderate or Generative normal. Semantic enables embedding-based grouping and neighbour calculation, but does not enable this controller's duplicate and contradiction analysis. Disabled turns all local AI off. The two generative efforts enable semantic processing and are required for this controller. The text generator is started only when at least one candidate pair exists and is closed after the controller finishes.
Generative moderate uses the smaller local text model. Generative normal selects the larger model and is intended for a machine with adequate RAM and a suitable dedicated GPU. Reqchecker recommends a default effort for new projects from the available RAM, Vulkan support and dedicated video memory, but an explicit Moderate or Normal choice remains available. Changing the effort does not immediately load a model.
When several Reqchecker projects use local AI on the same computer, they share one text server. Requests already running finish first; later requests are processed in arrival order and the server changes model only when it is idle. A model that cannot start can be requested again by a later analysis; no alternative model is substituted automatically.
Parameter
-
Semantic pair analysis percentage: percentage of eligible semantic-neighbour pairs sent to the local model. The accepted range is 1 to 100 and the default is 10. The FREE edition always uses the default percentage; TRIAL, PRO, TEAM and EXPERT editions can change it. A budget stored in a project is preserved when opened in FREE, but is not applied there. -
Random search: selects eligible pairs randomly at each run. Disable it to use a deterministic order. This option is available in all editions.
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.