# Write a loop brief

Describe one repeatable outcome before asking Loop Builder to generate a hosted version. A useful brief says what data enters the loop, what should leave it and which actions remain outside its authority.

## Before you start

Keep any existing draft. Hosted generation requires `cloud.loops.build` and your explicit consent to process the brief in the cloud. Writing the brief does not itself require starting generation.

## Write and submit the brief

1. Open [Loop Builder](https://dashboard.ouros.md/loops/builder). Describe the intended outcome in **What should Ouros create?** under **Generate a hosted version**.
2. Name the expected inputs and an observable output. State what must remain unchanged and which side effects need a separate decision.
3. Read the brief for secrets, ambiguous references and assumptions about device access. A text instruction does not enforce permissions or provide the hosted executor with files or network access.
4. If you intend hosted generation and have the required access, check **Allow cloud processing of this brief**, then choose **Create loop draft** once.
5. If generation is already in progress, choose **Check loop progress** for that request instead of submitting another brief.

## A bounded agent task brief

Use this brief template as document text. Fill its sections with concrete scope and acceptance criteria before submitting it. The template describes intent; it does not enforce permissions or spending limits.

```markdown
# Task brief

## Goal

Describe one outcome.

## Scope

List the files or subsystem to inspect.

## Existing work

State which changes must be preserved.

## Acceptance

Name the relevant test or observable result.

## Approval boundary

List actions that need a separate decision.
```

## Check the result

A returned candidate is ready for inspection, not proof that its requested task ran. Open it in [Saved Loops](https://dashboard.ouros.md/loops/saved), identify its exact version and compare its files with the brief. Do not activate it merely because the summary repeats your goal.

## If generation does not finish

Preserve the brief and request identity. Check existing progress and retain the error. Changing wording and submitting again creates a different generation attempt; it does not recover the original.

Next, [review the candidate](/docs/loop-builder/review-a-version).

## Related reading

[MDN: HTTP 202 Accepted](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/202) explains why request acceptance is not completion. Use the owning Loop run record to establish the actual execution state.
