Architecture
Deterministic triage: rules first, agent for ambiguous cases
How ICTX uses extracted evidence and deterministic rules, where an agent may help, and why coverage limits still matter.
A triage tool can ask a language model whether a scanner finding is real. ICTX starts with a different question: what evidence from the repository can a reviewer check?
The current workflow uses deterministic rules first. An agent can help with genuinely ambiguous evidence, but it is not the foundation of the decision.
The pipeline
The input is SARIF from a supported scanner. It contains a rule identifier, usually a CWE, and a location.
- Gather evidence. Read the repository around the finding. The workflow can inspect call paths, validation, framework context, configuration, and whether a file is test-only.
- Apply rules. A rule evaluates stated evidence. When a decisive signal supports a classification, the signal is recorded with the decision. When the evidence is not enough, the finding stays open with a specific question.
- Investigate ambiguity. An agent may help when the evidence is present but supports more than one reading. Its output is a judgment for a person to review, not a replacement for the evidence.
This ordering keeps absence of evidence from becoming a quiet close. It also keeps the boundary between a fact and a judgment visible.
Why rules come first
A rule can state the condition it evaluated and the evidence that satisfied it. That gives a reviewer a direct place to check the result. It also makes a changed output easier to investigate because the team can inspect the input, the extracted evidence, and the rule version.
This is a design property of the current workflow, not a claim that every run is correct or exactly reproducible. The Keycloak sample has no recorded commit, so it cannot support that stronger claim.
Where an agent helps
Some evidence remains ambiguous. A sanitizer may depend on how a caller uses its result. A validation routine may apply to one sink class but not another. A configuration boundary may be outside the checkout.
An agent can help investigate those cases using the extracted evidence. The finding remains marked as a judgment for review. It does not close a finding by turning missing evidence into confidence.
Limitations
- Deterministic does not mean correct. A rule can be wrong, so the decisive signal still needs review.
- Rules are only as good as extraction. Unindexed languages, unresolved dispatch, and framework behavior can leave evidence incomplete.
- Agent judgments are not deterministic in the strict sense. They are labelled and scoped to ambiguous cases.
- The current product does not preserve decisions across software changes or revalidate them. That is proposed work.
Inspect the workflow
How it works shows the current extraction and review steps against real screenshots. The directory lists summaries with their evidence labels and limitations. Those are the right places to test whether this first step fits your queue.