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

# Publish a Shape draft

> Review a compiled draft, run publication without applying it, publish after approval, and confirm the result in Runtime.

Use this when a Shape draft represents the intended records and passes its
example tests. Publishing changes what Runtime agents can add and validate in
the target project.

## Before you start

* Confirm the target project and the open draft.
* Keep one representative record handy for the Runtime check afterward.
* If this updates a published Shape, identify who will review migration impact.

## Ask your agent

> Prepare the current Shape draft for publication. Compile it, show me the full
> draft and the exact difference from the published version, preview what
> Runtime will expose, and check whether existing records need a migration. Run
> publication without applying it. Do not publish until I approve the reviewed
> result.

## Steps

<Steps>
  <Step title="Compile the exact draft">
    Record the draft revision being reviewed. If the draft changes later, compile and review it again.
  </Step>

  <Step title="Read the draft and its diff">
    Review every added, removed, renamed, or restricted field and relationship. Ask for the full list when the summary hides individual removals.
  </Step>

  <Step title="Preview what Runtime will show">
    Check that record and field descriptions are clear enough for another agent to use without this authoring conversation.
  </Step>

  <Step title="Check existing records">
    When updating a published Shape, run the migration plan and review any records that need manual handling.
  </Step>

  <Step title="Run publication without applying it">
    Confirm the project, version, and publication result from the dry run. Nothing should be live yet.
  </Step>

  <Step title="Approve and publish">
    After the prior outputs match your intent, tell the agent to publish with a review note that names what was checked.
  </Step>

  <Step title="Check Runtime">
    Switch to Runtime, inspect the target project, and confirm the published record types, fields, and relationships.
  </Step>
</Steps>

## Verify

Ask the Runtime agent to explain how it would represent the example you kept at
the start. The published Shape should appear in the intended project and expose
the same fields you approved in the preview.

## Troubleshooting

* **Runtime cannot see the Shape:** confirm the project and check whether the last call was still a dry run or returned a pending review.
* **The diff changed after approval:** stop and review the new compiled revision.
* **Existing records need manual migration:** resolve or explicitly accept those cases before publishing.
* **The wrong project was targeted:** do not publish a duplicate elsewhere to hide the mistake; resolve the publication state first.

<Accordion title="Tool trace">
  ```text theme={null}
  shape_workbench_compile
  → shape_workbench_inspect
  → shape_workbench_diff
  → shape_workbench_preview_operating_surface
  → shape_workbench_plan_migration when needed
  → shape_workbench_materialize({ dry_run: true, review_note: "..." })
  → approval
  → shape_workbench_materialize({ apply: true, dry_run: false, review_note: "..." })
  → Runtime: penumbra_status
  → Runtime: penumbra_introspect
  ```
</Accordion>
