# APS original preparation and independent input warnings (W1)

Authority: Charter `a8195284f12159cad9ee8be2ff010db85cf27ccf`, `handoffs/post-v1814-20261016/preparation-warning-w1.md` §§2–4/6. This contract replaces only the older preparation/warning/purchase-blocking clauses; responder completion, fixed bank/evaluation, alias and terms bindings are unchanged.

`POST /api/agent/aps/preparations` keeps `ln_church.aps_prepare_request.v1`. HTTP 200 returns `ln_church.aps_preparation.v2`: existing preparation_id/state/input_digest/retry_after_ms/preview/error fields and `warnings` as in warnings.schema.json. New successful prepares are READY with all selected questions and public conditions already in the immutable preview, profile `aps-preparation.v3`. No preparation work, Llama, target-page retrieval, translation or AI decomposition is started. Read uses the existing v1 request, returning v2 for v3 preparations. Bound legacy recovery continues to read v1 responses.

New/changed context.purpose and public_context.purpose are original strings. Inherited legacy objects use the explicit union in purpose.schema.json, with their original source. Existing Task/context schemas deliberately leave these objects open, so the responder pack, manifest, definition digest and SDK need no version change. Do not duplicate originals as en/ja. Changed optional fields are literal specified_text with unspecified_aspects=[]; this means no AI decomposition, not that respondent assumptions are unnecessary. agent-assumed.v1 still applies. Unchanged legacy fields and same-condition context IDs remain immutable.

After rendering READY, call `POST /api/agent/aps/preparations/warnings` once asynchronously with warning-request.schema.json. It returns HTTP 200 with schema_version=`ln_church.aps_preparation_warnings.v1`, preparation_id, input_digest, warnings. Match both IDs/digests and client revision before applying a result. Do not await warnings to render, quote or purchase. On response loss use existing preparations/read (one-second interval); stop at terminal states or the 15-second deadline convergence. Content-preserving redisplay/language changes reuse the preparation key and results; do not mint a new key to recheck.

Checks english/blind are independent. Completed p is an exact normalized decimal string, compared without floating-point rounding; p>=0.5 warns (including exactly 0.5). Failed and pending never mean p=0/safe. Blind is not_applicable when B is absent. Each applicable check has at most one persisted dispatch; no retry/fallback. Provider uncertainty converges to failed/check_timeout after 15 seconds from start. A late result cannot replace a terminal check. The fixed English instructions and model typesafe/jev → jev-1.13.0 use existing cf-ai-run-jev-v1 transport. Private metadata records non-body dispatch count, duration and available provider token usage. Real classification accuracy, latency and billing require Release observation.

`POST /api/agent/aps/quotes` keeps its v1 request and returns `ln_church.aps_quote.v2` for new APS v3 previews. Existing fields, token, 30-minute expiry and pricing remain. Custom/legacy recovery retains v1. Warnings live separately from preview/context/revision/quote/terms and never block normal purchase/publication or change payment identity, price, reward, compensation or refund.

Unpurchased old-profile preview/quote cannot create a new registration binding: use existing terms_confirmation_required, retain input and prepare/confirm again with a new key. Legacy PREPARING converges on read/processing to FAILED/terms_confirmation_required and its old work becomes TERMINAL without a provider call. Existing bound intent/attempt recovers its original snapshot before new-binding checks. Existing expiry, capability-token, source permissions, structural and payment checks remain.

The backend candidate does not include UI-owned HTML/assets/client/wire. UI owns R3 rendering, stale-result filtering and integrated click-to-full-preview timing; a backend READY duration alone is not proof of the Human three-second requirement.
