{
  "id": "recipe.create-wire-diagram",
  "goal": "Create a canonical WireDiagram from a prompt or blank start.",
  "readFirst": [
    "/llm/schema/wire-diagram.json",
    "/llm/validation.shape.json"
  ],
  "preferredPath": [
    "Choose a slug-like diagram id and layout LR, TB, RL, or BT.",
    "Create nodes with id, kind, and title.",
    "Set description for visible card body copy.",
    "Wire ordinary connections by setting from on the target node.",
    "Use explicit edges only for labels, handles, edge style, routing, or stable edge ids.",
    "Run validate before rendering or sharing."
  ],
  "minimalJson": {
    "version": 1,
    "id": "support-flow",
    "title": "Support flow",
    "layout": "LR",
    "nodes": [
      {
        "id": "ticket",
        "kind": "trigger",
        "title": "New ticket"
      },
      {
        "id": "classify",
        "kind": "ai",
        "title": "Classify intent",
        "from": "ticket"
      },
      {
        "id": "resolve",
        "kind": "action",
        "title": "Resolve request",
        "from": "classify",
        "tone": "success"
      }
    ],
    "edges": []
  },
  "mcpPath": [
    "create_diagram({ id, title, layout })",
    "apply_actions({ diagramId, actions: [{ type: 'node.add', node }, ...] })",
    "validate({ diagramId })"
  ],
  "cliPath": [
    "wire init support-flow --title=\"Support flow\"",
    "wire add trigger --diagram=support-flow --id=ticket --title=\"New ticket\"",
    "wire add ai --diagram=support-flow --id=classify --title=\"Classify intent\" --from=ticket",
    "wire validate support-flow"
  ],
  "avoid": [
    "Do not create generic graph node/edge objects as durable state.",
    "Do not invent source, target, next, connectsTo, or uppercase kinds.",
    "Do not output Mermaid as the primary artifact."
  ]
}
