# RunJudgment

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.runjudgment/
> Summary: RunJudgment: The judge's verdict: the named scores it produced.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Abstractions.dll</code></div>

The judge's verdict: the named scores it produced.

```csharp
public sealed record RunJudgment : IEquatable<RunJudgment>
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.runjudgment/">RunJudgment</a></dd><dt>Implements</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.iequatable-1">IEquatable&lt;RunJudgment&gt;</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

A judge that reports one overall verdict returns a single
[JudgeScore](/api/tracon.judgescore/) named after itself. A judge that bridges a metric
catalog returns one entry per metric. Each entry becomes its own
[RunScore](/api/tracon.runscore/) row.

An **empty** list means the judge reached no decision, and
nothing is written. It is not an error and it is not a score of zero.

## Constructors

### <a id="Tracon_RunJudgment__ctor"></a> RunJudgment\(\)

```csharp
public RunJudgment()
```

## Fields

### <a id="Tracon_RunJudgment_MaxReasonLength"></a> MaxReasonLength

The greatest stored reason length.

```csharp
public const int MaxReasonLength = 4000
```

#### Field Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

## Properties

### <a id="Tracon_RunJudgment_EvaluatorVersion"></a> EvaluatorVersion

The version of the component that produced this judgment, when the judge
knows one. Written onto every score row as
[RunScore.EvaluatorVersion](/api/tracon.runscore/#Tracon_RunScore_EvaluatorVersion).

```csharp
public string? EvaluatorVersion { get; init; }
```

#### Property Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)?

#### Remarks

[null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) — the default — means **no version is
reported**, which is what a judge whose verdict depends on no
versioned component should return. It never means "version zero".

A judge that grades through a package scores against that package's
prompt, so upgrading the package moves the scores while the model stays
the same. Reporting the version here is what lets a reader tell a real
regression from a changed judge. Resolve it **once**, when
the judge is constructed, rather than on each call.

At most [RunScoreRules.MaxEvaluatorVersionLength](/api/tracon.runscorerules/#Tracon_RunScoreRules_MaxEvaluatorVersionLength)
characters; a longer value is a contract failure and the judge's scores
are not written.

### <a id="Tracon_RunJudgment_Scores"></a> Scores

The scores the judge produced. Empty when it reached no decision.

```csharp
public IReadOnlyList<JudgeScore> Scores { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[JudgeScore](/api/tracon.judgescore/)\>

#### Remarks

Names must be distinct within one judgment; [JudgeScore.Name](/api/tracon.judgescore/#Tracon_JudgeScore_Name)
is part of the stored uniqueness key, so a repeated name would overwrite
the earlier row. A duplicate is reported as a contract failure and
nothing is written for that judge.

## Methods

### <a id="Tracon_RunJudgment_Equals_System_Object_"></a> Equals\(object?\)

```csharp
public override bool Equals(object? obj)
```

#### Parameters

`obj` [object](https://learn.microsoft.com/dotnet/api/system.object)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_RunJudgment_Equals_Tracon_RunJudgment_"></a> Equals\(RunJudgment?\)

```csharp
public bool Equals(RunJudgment? other)
```

#### Parameters

`other` [RunJudgment](/api/tracon.runjudgment/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_RunJudgment_GetHashCode"></a> GetHashCode\(\)

```csharp
public override int GetHashCode()
```

#### Returns

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_RunJudgment_ToString"></a> ToString\(\)

```csharp
public override string ToString()
```

#### Returns

 [string](https://learn.microsoft.com/dotnet/api/system.string)

## Operators

### <a id="Tracon_RunJudgment_op_Equality_Tracon_RunJudgment_Tracon_RunJudgment_"></a> operator ==\(RunJudgment?, RunJudgment?\)

```csharp
public static bool operator ==(RunJudgment? left, RunJudgment? right)
```

#### Parameters

`left` [RunJudgment](/api/tracon.runjudgment/)?

`right` [RunJudgment](/api/tracon.runjudgment/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_RunJudgment_op_Inequality_Tracon_RunJudgment_Tracon_RunJudgment_"></a> operator \!=\(RunJudgment?, RunJudgment?\)

```csharp
public static bool operator !=(RunJudgment? left, RunJudgment? right)
```

#### Parameters

`left` [RunJudgment](/api/tracon.runjudgment/)?

`right` [RunJudgment](/api/tracon.runjudgment/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)
