Put prompts.json in the app target. A writer can edit the file. A developer reviews the diff. You can later load the same shape from a server you control. That server is still your registry, not an Apple product.
Fileprompts.json
Fileprompts.json
ReviewPull request
Fileprompts.json
ReviewPull request
GateEvaluations
Checklist before a prompt goes live
- New record id. Do not edit a live record in place.
- Owner name and a one-line reason.
- Eval set run on the new id in Xcode 27. See Test AI behavior before you ship.
- TTFT check on the oldest device you support. See Stream tokens and measure speed.
- Trace one happy path. See Trace every step of an AI call.
- Roll-back id written in the record.
Remote config is optional. If you use it, pin a schema version and fail closed to the bundled live record when the network is down. Do not fetch a free-form string from a public URL and pass it to the model.
Primary sources: WWDC26 242 and Foundation Models.
Short form. Store versions. Route with one Dynamic Profile. Roll back by id. Eval before live.
Key concepts
- Bundle
prompts.jsonin the app target. - Checklist: new id, owner, eval run, TTFT check, one happy-path trace, rollback id.
- Remote config is optional. Fail closed to the bundled live record when the network is down.
- Do not fetch free-form strings from a public URL and pass them to the model.
Takeaways
- Store versions, route with one Dynamic Profile, roll back by id, eval before live.
- Copy changes cannot skip evals.
- The registry is yours, not an Apple product.