Field Manual

Define the data contract at every boundary

Agree what a valid record means before connecting AI output to an enterprise system.

A data contract checks required fields and accepted types before a record enters a receiving system.

A clean-looking response is not necessarily a usable enterprise record. The receiving system may require a stable identifier, a specific date representation, an accepted currency code, or a set of fields that must agree with one another. Define that contract before connecting an AI component to the destination.

The contract is a shared agreement between the producer and the consumer. It describes the shape of the information, what each field means, which values are acceptable, and what happens when a record fails a check.

Separate structure from business meaning

Start with structural requirements: property names, types, required fields, accepted enumerations, and whether additional fields are allowed. Be explicit about the difference between a missing value, a value that is unknown, and a value that does not apply. Treating those conditions as interchangeable can produce misleading defaults.

JSON Schema’s object documentation explains how properties and required fields can be expressed for JSON objects. A schema can validate structure. It does not establish that a supplier exists, an invoice total is correct, or a proposed change is authorized.

Those business checks belong alongside structural validation. Record where reference data comes from, how current it must be, and which owner resolves conflicting information. An amount can be a valid number while still being wrong for the purchase order.

Define the receiving system’s interpretation

Write down units, time zones, identifier namespaces, and rounding rules. A date without a time zone may be acceptable for a document issue date and unsuitable for an event timestamp. A customer identifier may only be unique within one business unit.

Also agree what the destination does with empty values. Does an omitted field preserve an existing value, clear it, or trigger a default? The integration should never have to discover that behavior by accident in production.

Design rejection as a useful response

A failed record needs a precise reason and a next action. “Validation failed” gives an operations reviewer very little to work with. “Supplier reference is absent from the approved supplier list” identifies both the check and the information needed to resolve it.

Keep the original source and proposed record connected. A reviewer should be able to inspect the input, correct a field, and understand which checks will run again. Avoid repeatedly asking people to reconstruct context from a separate inbox or file share.

Version the agreement deliberately

Define which changes can be introduced without breaking the consumer. Adding an optional descriptive field may be compatible; changing the meaning of an existing identifier may not be. Keep old and new versions distinguishable while a receiving system is being updated.

Test the contract with incomplete, unexpected, and contradictory records. Include destination responses, not just the data sent toward them. A successful validation followed by a rejected system update is still an incomplete handoff.

A clear contract makes model changes easier to evaluate. It gives the team a stable boundary against which to test preparation quality, without allowing a new response format to quietly redefine the business process.