> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chronicle-labs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a world

> Review an example world, launch its service twins, and prepare a task suite for your agent.

Worldsmith builds a **world**: a simulated system with services, data, and state
your agent can interact with. This walkthrough models a company's
duplicate-invoice incident: move **ENG-2** to **In Progress** and notify finance
in **#erp-alerts**.

**Start with the example → Review the checked draft → Launch → Evaluate.**
Checking validates the draft. Launching saves it and starts its service twins.
The agent does its work when you run an evaluation.

<Steps>
  <Step title="Open the example">
    In the dashboard, open **Worldsmith** and choose
    **Coordinate an order-to-cash rollout**. This loads the built-in company,
    connected records, and tasks used below.

    <Frame caption="Choose Coordinate an order-to-cash rollout to load the built-in example." className="product-capture product-capture-welcome">
      <img src="https://mintcdn.com/chroniclelabs-0d363efc/BRuFTKj-kt84RfoY/images/product/worldsmith-welcome-focused.png?fit=max&auto=format&n=BRuFTKj-kt84RfoY&q=85&s=507715c0b7edf76908172a103d05489c" alt="Worldsmith welcome with its prompt composer and Coordinate an order-to-cash rollout starting point" width="720" height="536" data-path="images/product/worldsmith-welcome-focused.png" />
    </Frame>

    [Open the welcome image](/images/product/worldsmith-welcome-focused.png).
    To create a different situation after this walkthrough, use a
    [complete brief](/worldsmith/prompting).
  </Step>

  <Step title="Follow the connected records">
    In **Overview**, review the company and shared people. In **Twins**, open
    **Linear → Issues → ENG-2** and read the duplicate-invoice description.

    Check three references in the same incident:

    * **SAP order 7001** is the order that was invoiced twice.
    * **Salesforce case 00001001** tracks Northwind's open customer case.
    * **#erp-alerts** contains the engineering and finance discussion.

    <Frame caption="ENG-2's description connects the duplicate invoice to order 7001, case 00001001, and #erp-alerts." className="product-capture product-capture-record">
      <img src="https://mintcdn.com/chroniclelabs-0d363efc/BRuFTKj-kt84RfoY/images/product/worldsmith-record-focused.png?fit=max&auto=format&n=BRuFTKj-kt84RfoY&q=85&s=6142ce0e7b991d874c778d1eb1cb1961" alt="Expanded Linear issue ENG-2 showing the duplicate-invoice description and its order, case, and Slack references" width="808" height="745" data-path="images/product/worldsmith-record-focused.png" />
    </Frame>

    [Open the record image](/images/product/worldsmith-record-focused.png), or
    [try the world workspace](/product-explorer#twins).
    In that example, use **Overview** to inspect people and **Twins**
    to expand **Linear → Issues → ENG-2**. Edits there stay in the example.

    Wait for **World prepared** in the Worldsmith conversation. Expand its
    notes to review any warnings. If you see **A few things need fixing**,
    correct the listed records or choose **Fix with Worldsmith**.
  </Step>

  <Step title="Read the task and its two checks">
    Open **Tasks → Triage the duplicate invoice incident**. Read the
    **Instruction**, **Steps**, and **Expected outcome**. The agent must move
    ENG-2 to **In Progress** and post a new message in **#erp-alerts** containing
    this exact text:

    <div className="chronicle-prose-prompt">
      ```text theme={null}
      ENG-2 is in progress for order 7001; case 00001001 remains open.
      ```
    </div>

    <Frame caption="The built-in triage task has two Python scorers: one for the Linear update and one for the new Slack handoff." className="product-capture product-capture-task">
      <img src="https://mintcdn.com/chroniclelabs-0d363efc/BRuFTKj-kt84RfoY/images/product/worldsmith-task-focused.png?fit=max&auto=format&n=BRuFTKj-kt84RfoY&q=85&s=367ee7fc623a586462eacb7a4200853a" alt="Triage the duplicate invoice incident with its instructions, steps, expected outcome, and two attached Python scorers" width="1168" height="892" data-path="images/product/worldsmith-task-focused.png" />
    </Frame>

    [Open the task image](/images/product/worldsmith-task-focused.png), or
    [inspect the example task](/product-explorer#agent-task).

    Open each scorer. **ENG-2 was moved to In Progress** checks the issue
    update. **The incident handoff was posted in #erp-alerts** checks a new
    message containing the exact sentence above. Both have a **1.00** pass threshold.

    The instruction also says to keep the case open and not claim the bug is
    fixed. The two supplied scorers do **not** independently verify those
    constraints. To make them affect the score, add checks before launching;
    see [grade constraints as well as changes](/worldsmith/prompting#make-success-observable).
  </Step>

  <Step title="Launch and confirm the task suite is ready">
    Choose **Launch world**. The button becomes available when checking has
    finished, there are no problems, and the draft includes at least one service.

    Launching saves this world version, starts its twins, and prepares its task
    suite and scorers. Confirm both checkpoints:

    * In **Twins**, the four services show **Running**. Each running twin has
      a base URL and an **API token** for its vendor API.
    * In **Tasks**, you see **Saved in Tasks with … scorers** and
      **Open task suite**. Task setup finishes separately from twin startup.

    If Tasks shows **Create task suite**, **Resume task setup**, or
    **Retry task setup**, follow the
    [task-setup recovery steps](/worldsmith/troubleshooting#the-world-is-running-but-tasks-are-not-ready).

    The world's **Timeline** records requests, changes, and lifecycle events
    from these twins. Once a request changes a record, select it to inspect the
    captured change. See [Timeline and traces](/platform/observability).

    <Frame caption="A real direct API update to the local Linear twin, not an agent evaluation. The stored state_id moved from Todo (ID ending 0002) to In Progress (ID ending 0003), as confirmed by the API response." className="product-capture">
      <img src="https://mintcdn.com/chroniclelabs-0d363efc/BRuFTKj-kt84RfoY/images/product/worldsmith-mutation-focused.png?fit=max&auto=format&n=BRuFTKj-kt84RfoY&q=85&s=be54f02ba67c2f30936daa83eb63d16c" alt="The local Linear twin's recorded mutation, showing state_id changing from an ID ending 0002 to one ending 0003 and the associated timestamp changes." width="539" height="857" data-path="images/product/worldsmith-mutation-focused.png" />
    </Frame>

    [Open the recorded change at full size](/images/product/worldsmith-mutation-focused.png).
  </Step>

  <Step title="Run the task against your agent">
    Choose **Tasks → Open task suite** to review the saved tasks. If this is
    your first agent, [register a runnable version](/platform/agents), such as
    **billing-agent\@1.0.0**. Then [run the suite in Backtests](/platform/evaluations).

    Every trial starts from a fresh copy of the saved world. Inspect the
    trial's scores and Timeline to confirm the Linear update and Slack handoff.
    Its activity belongs to the trial, separate from the dashboard world's Timeline.
  </Step>
</Steps>

## Refine the next version

Reopen the world with the switcher beside its title. Click an editable field
to change it; edits save to your browser's draft and trigger another check.
For a larger variation, ask Worldsmith:

<div className="chronicle-prose-prompt">
  ```text theme={null}
  Keep the duplicate-invoice task, existing record keys, and both scorers. Add a similar incident for another customer and an older Slack reply saying the incident was resolved. Add newer evidence that Northwind's case is still open. Keep ENG-2 in Todo and leave the required handoff message for the agent to write.
  ```
</div>

Use **Add twin**, **Remove twin**, or **Restore twin** in **Twins** to change
the services in the next version. Ask Worldsmith to change IDs, handles, or
channel names so related references stay consistent. In **Tasks**, use
**Generate tasks** when there are none, or **Generate scorers** / **Add scorer**
for the selected task.

Choose **Launch version** to save edits as a new version, or **Relaunch** for
a fresh version of the same configuration. The **v1**, **v2** controls open
version history. Earlier versions keep their records and activity.

<Note>
  Draft edits stay in this browser until you launch. They do not change running
  twins. Screenshots use the built-in example; worlds generated from your own
  briefs can have different records and identifiers.
</Note>

<CardGroup cols={2}>
  <Card title="Write a good brief" icon="message" href="/worldsmith/prompting">
    Define the starting evidence, actions, and checks.
  </Card>

  <Card title="Worlds API" icon="code" href="/api-reference/worldsmith">
    Compile and launch worlds from code.
  </Card>
</CardGroup>
