Agents: this page is also Markdown; every page is in llms.txt.

Write good Expectations

An Expectation is one plain statement of what a good answer does, such as "marks a double charge as urgent". Facet checks every new version against every Expectation, and a version goes live only when they pass. Good Expectations are the best way to get a Task that does what you mean.

Facet drafts the first ones from your description. This page is for reviewing them and adding your own.

One behavior per statement

Each Expectation should be something you could check by reading one answer.

Instead of Write
Handles tickets well Picks billing, bug or account for every ticket
Is accurate and concise Copies the invoice total exactly as written
Doesn't make mistakes with urgency Marks a ticket urgent when the customer can't log in
Good tone Never promises a refund

Split a statement that has "and" in it: two Expectations tell you which half fails.

Give it examples

Each Expectation has examples: inputs, and the right answer when there is one. Facet uses them two ways:

Real inputs from your app beat invented ones. Edge cases beat easy ones: the ticket written in two languages, the invoice with two totals. See Add examples.

How each one is checked

Facet picks how to check each Expectation, and you can see and change it on the Expectation's page:

The bar

Each Expectation has a bar, the share of its hidden examples a version must get right:

A new Expectation that today's version already passes is fine; it protects that behavior from future changes.

What the colors mean

Who can loosen one

Lowering a bar, removing an Expectation, or making it optional (shown, but no longer required to merge) needs a Task owner's approval, so an Expectation can't quietly stop protecting you.

Next steps