bytefield · git:20261023.634e385 · 2026-10-23 · sha256 8a9dbcb342da813e
bytefield git:20261023.634e385A
Immutable. This exact content never changes and is served at /api/v1/blob/8a9dbcb342da813e.
---
name: bytefield
description: >-
Writes valid bytefield diagram source for uml-mcp (diagram_type=bytefield). Binary protocol and byte layout diagrams Use when the user asks for bytefield or that notation; then call validate_uml / generate_uml / generate_uml_image.
---
# bytefield diagram (uml-mcp)
**`diagram_type`:** `bytefield`
**Backend:** `bytefield`
**Output formats:** svg
Binary protocol and byte layout diagrams
Load the workflow skill [uml-mcp-diagrams](../uml-mcp-diagrams/SKILL.md) for URL-first replies, progressive discovery, and which MCP tool to call. This file is notation only; it does not add an MCP tool.
## Styling
- Use `(defattrs … {:fill "#…"})` for row colors.
- No MCP `theme` param.
## Starter template
```bytefield
(defattrs :bg-green {:fill "#a0ffa0"})
(defattrs :bg-yellow {:fill "#ffffa0"})
(defattrs :bg-pink {:fill "#ffb0a0"})
(defattrs :bg-cyan {:fill "#a0fafa"})
(defattrs :bg-purple {:fill "#e4b5f7"})
(def row-height 40)
(def row-header-width 50)
(def box-width 30)
(defn draw-packet-header
[]
(draw-column-headers)
(draw-box "Version" {:span 8})
(draw-box "Flags" {:span 8})
(draw-gap "Payload")
(draw-bottom))
(draw-packet-header)
```
## Example
```bytefield
(defattrs :bg-green {:fill "#a0ffa0"})
(defattrs :bg-yellow {:fill "#ffffa0"})
(defattrs :bg-pink {:fill "#ffb0a0"})
(defattrs :bg-cyan {:fill "#a0fafa"})
(defattrs :bg-purple {:fill "#e4b5f7"})
(defn draw-group-label-header
[span label]
(draw-box (text label [:math {:font-size 12}]) {:span span :borders #{} :height 14}))
(defn draw-remotedb-header
[kind args]
(draw-column-headers)
(draw-group-label-header 5 "start")
(draw-group-label-header 5 "TxID")
(draw-group-label-header 3 "type")
(draw-group-label-header 2 "args")
(draw-group-label-header 1 "tags")
(next-row 18)
(draw-box 0x11 :bg-green)
(draw-box 0x872349ae [{:span 4} :bg-green])
(draw-box 0x11 :bg-yellow)
(draw-box (text "TxID" :math) [{:span 4} :bg-yellow])
(draw-box 0x10 :bg-pink)
(draw-box (hex-text kind 4 :bold) [{:span 2} :bg-pink])
(draw-box 0x0f :bg-cyan)
(draw-box (hex-text args 2 :bold) :bg-cyan)
(draw-box 0x14 :bg-purple)
(draw-box (text "0000000c" :hex [[:plain {:font-weight "light" :font-size 16}] " (12)"]) [{:span 4} :bg-purple])
(draw-box (hex-text 6 2 :bold) [:box-first :bg-purple])
(doseq [val [6 6 3 6 6 6 6 3]]
(draw-box (hex-text val 2 :bold) [:box-related :bg-purple]))
(doseq [val [0 0]]
(draw-box val [:box-related :bg-purple]))
(draw-box 0 [:box-last :bg-purple]))
(draw-remotedb-header 0x4702 9)
```
## Render with uml-mcp
1. Set `diagram_type` to `bytefield` exactly.
2. Call **`validate_uml`** when the source is untrusted (prefer `strict: true` for Mermaid sequence).
3. Call **`generate_uml`**, **`generate_uml_image`** (chat PNG), or **`generate_uml_batch`**.
4. Pass **`theme`** when this skill's Themes section lists supported values.
5. Surface the returned `url` / `playground` (see the workflow skill).
Confirm formats with `uml://formats` or `list_diagram_types` when unsure.