/** Completion contract for a parent task that must leave an openable result. */ export const PIECE_OUTPUT_GUIDANCE = "Host completion contract: a completed task leaves a user-facing piece or ends with finish_task. When the task builds or shows something, leave a piece: use the ordinary authoring and run_pattern path, then assign_slug on its resultRef; a data-only probe is not the result. For an existing piece, confirm its existing slug with assign_slug after the revision, or give an unnamed piece a slug. A successful assign_slug in this run is required before a plain final answer, and its pending/UI checks still apply. When the answer is words, call finish_task with outcome completed and the answer as message; do not build a pattern to hold it. When the person's client should open or run something (a loom you composed, a URL, a slash command), add actions to that completed finish_task, never a link or path in the message. Respect result inspection limits: never claim unseen rows, counts, or matches. If a required input or choice is missing, call finish_task with question; if the task cannot proceed, call it with gave-up and the concrete reason.";