boxes · git:20261030.0e25765 · 2026-10-30 · sha256 9a78d64797c8beeb

boxes git:20261030.0e25765A

Immutable. This exact content never changes and is served at /api/v1/blob/9a78d64797c8beeb.

---
name: boxes
description: Create a structured Boxes diagram from a scene or system.
argument-hint: "[scene intent]"
---

# boxes

Define one diagram with the boxes protocol and open it on the public viewer.
Done when a tool `url` is shown.

## Script Macros

| Macro | CLI |
|---|---|
| `$DRAWER_CTL` | `python3 scripts/drawer_control.py` |

## References

Load what the current write needs.

1. Run `$DRAWER_CTL assets`. If it fails, stop and report.
2. Load vocab from `files["vocab.md"].path`.
3. Load [demo.bmd](./templates/demo.bmd) only when a complete example helps.
4. When using an icon, load `files["icons.json"].path`.
5. Load [viewer](./references/viewer.md) for CLI `status` or preview kind.

## Author

What to write.

1. **BMD Source** is the `.bmd` body. The file has no identity.
2. Author one BMD Source string that follows vocab.
3. Mint without style. On update, leave those lines unchanged.

## Mode

Pick short link or cloud.

1. If the `whoami` MCP tool is listed, use **cloud mode**. Load [cloud](../references/cloud.md).
2. If it is missing, use **short-link mode**. Do not mention MCP.
3. If `whoami` is listed but a tool call fails, use **short-link mode**.
4. If the user pastes a viewer URL in short-link mode, load [pointers](../references/pointers.md).

## Short link flow

Publish unsigned.

1. After any preview, show only the CLI stdout `url` and stop.
2. No scene to draw (and not an update): run `$DRAWER_CTL preview --kind boxes`
   with no `--file` and no stdin body.
3. Run `$DRAWER_CTL preview --kind boxes` with stdin or
   `--file`. If it reports a DSL error, correct the BMD Source and rerun.
4. To change, edit this session’s last BMD Source text and preview again. That
   creates a new short url. If none yet, run step 3 first.
5. To keep, use cloud mode (`#b:`).

## Open wording

Show the CLI stdout `url` or MCP `url`. One line.

## Boundaries

1. CLI stdout contract: `$DRAWER_CTL --help`.
2. CLI success or MCP write completes the skill; do not open the URL, drive the
   viewer, or screenshot the layout unless the user explicitly requests visual
   verification.