> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vals.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Writing Effective Criteria

While developing the platform, we've found certain tips for writing effective criteria.

## 1. Make it Human Readable

If a stranger would have a hard time understanding what your criteria means, then it will likely not perform well with the
automatic evaluation system. Therefore, an easy litmus test you can use to see if your criteria is written well is to ask yourself,
"If I showed this to my colleague, would they be able to understand what it means?"

## 2. Use Global Checks

If you find yourself adding the same operator to every test that you write, you can instead add it as a "Global Check". This ensures that it will run automatically for every single input defined. This is common for unary operators, such as `is_concise`, or the operators checking for harassment.

## 3. Use Noun Phrases or Complete Sentences for Includes, Excludes, and Equals

For the `includes`, `excludes`, and `equals` operators, the criteria should be either a grammatical noun/noun phrase or
a full sentence. If it's a sentence fragment, it may not be parsed correctly. Here's an example.

#### Avoid:

> operating

#### Better:

> A reference to operating the vehicle

#### Better:

> The defendant was operating the vehicle at the time of the accident.

## 4. Split "AND" Statements into Multiple Checks

If you have a statement that contains "AND" as a conjunction, it is generally better to split it into two or more separate
checks. Here is an example of a criteria with an AND clause, along with an example of it being decomposed into multiple
separate criteria.

#### AVOID:

> Includes: A reference to the fact that QSBS is a tax incentive, and that it applies to C Corporations.

#### BETTER:

> Includes: QSBS is a tax incentive.

> Includes: QSBS applies to C Corporations

## 5. No Relative or Implicit Clauses

Try to minimize the amount of context a human or AI agent reading your criteria would need to understand. This includes avoiding pronouns,
avoiding relative clauses, and avoiding grammatical ambiguity. Here are some examples:

#### AVOID:

> Includes: A reference to the statute

#### BETTER:

> Includes: A reference to statute 83(b).

#### AVOID:

> He was operating the vehicle while intoxicated.

#### BETTER:

> The Defendant was operating the vehicle while intoxicated.

## 6. Use "Satisfies Statement" as a Catch-All Operator

If none of the existing operators suit your needs, you can use the `satisfies_statement` as a very customizable operator.
For example, you may want to check that the output is formatted as a numbered list with exactly four bullet points. The two
existing formatting operators don't meet this requirement exactly. Therefore, you may use something like the following:

> Satisfies Statement: The output is formatted as a numbered list with exactly four items.
