Check inputs and requiredness
List every input field, its type, whether it is required, its allowed range or format, and which earlier step supplies it.

Guide 05 // Agent Preflight
A tool contract says what a producer supplies, what a consumer expects and where the boundary stops. Review it before a compatibility check so a clean result has a precise meaning.
Why this matters
Two tools can both call a value id while disagreeing about whether it is a customer identifier, a request identifier or an opaque handle. They can also disagree about units, time zones, list ordering, nulls, retry behaviour or who is allowed to use the result.
Declared contracts make those seams reviewable. They let a person spot a missing input or stranded output before an agent is asked to contact a live tool. They also keep compatibility separate from authority: a structurally compatible draft is not permission to access a secret, change a destination or execute work.
Keep examples synthetic or redacted. Record the account or workspace scope. Do not paste credentials, bearer tokens, private payloads or production responses into a compatibility review.
List every input field, its type, whether it is required, its allowed range or format, and which earlier step supplies it.
List every output field, its type and requiredness, then name the later step that consumes it or record why it is intentionally terminal.
Write down what each value means, its unit, scale, time basis and allowed null or empty state; do not rely on matching field names alone.
Confirm whether each value is singular or a list, the ordering rule, maximum size, rate, timeout and payload limits, and what happens at the boundary.
Record the account or workspace scope and the identity expected by the receiving tool, while keeping credentials, tokens and payloads out of the review material.
Define the response shape for validation errors, timeouts, partial results and retries, including whether a failure is safe to repeat or needs human review.
State what the draft may describe and keep permission to access secrets, change a destination, send a request or execute work outside the compatibility check.
Save the contract version, the checked seam, the redacted result and one bounded correction or review action without claiming availability, delivery or system safety.
Synthetic example
Suppose a draft connects ticket.lookup to case.attach. The producer returns ticket_id as a string and opened_at as an ISO 8601 UTC timestamp. The consumer expects case_id, a string owned by the receiving workspace, plus opened_at_ms, an integer epoch timestamp in milliseconds.
A redacted compatibility note can say: incompatible at field mapping; ticket_id is not declared as a case_id, and the timestamp unit differs. Proposed correction: add a named lookup adapter that resolves a ticket to a case within the same declared account, then convert the timestamp explicitly. No token, real ticket body or live request is needed to explain the seam.
It can establish that the declared fields, types, meanings and routing either fit or have a named mismatch at the time of review.
It cannot prove endpoint availability, delivery, vendor or framework compatibility, permission, confidentiality, operational reliability or overall system safety.
Agent Preflight is an account-scoped, read-only review surface. It does not accept or reveal secrets, require sensitive payloads, execute tools, configure deployments or provide public self-service access. It has no promise of availability or SLA, and a named framework is not compatible merely because its fields look similar.
After the review, keep the redacted contract and result with the draft. If the seam fails, use the tool-chain mismatch guide to choose the smallest visible correction. If it fits, use the preflight guide to record what was checked and what still requires a separate human decision.