Configuring
The config is your control surface: the agent follows it literally. Make it in the configurator, or edit the YAML.
The configurator writes this file for you and puts it into the prompt you paste into your agent. You can also keep it in the repository as diagrams/diagram.config.yaml and edit it by hand; then ask your agent /blueprint-deck diagrams/diagram.config.yaml (or "update the blueprint deck").
The sections project, branding, sources, behaviour andworkflow are shared by every diagram in the file. Each entry under diagrams is one diagram with its own type, viewpoint, audience, map, personas, tabs, tour and sheets. Below is the full annotated template, section by section.
Header
Where the file lives and how to run it. version: 2 is the current format; a version 1 config (no diagrams: list, a top-level type) still works and means one diagram.
# diagram.config.yaml: how your Blueprint Deck should be generated.
# Make it with the configurator (https://blueprint-deck.lukasvecerka.dev/configurator or configurator/index.html),
# or edit this file. Put it in <your repo>/diagrams/ and ask your agent: "/blueprint-deck diagrams/diagram.config.yaml".
# The agent reads this file and the sources it lists; it needs no other instructions.
version: 2project
The name and subtitle become the file's title (and the switcher's title when there are several diagrams); the one-liner becomes the lead on the start screen. maturity decides how statuses are worded: a planned product is never presented as built.
project:
name: "My Platform" # title of the file (and of the switcher when there are several diagrams)
subtitle: "Product blueprint"
maturity: planned # planned | partly-built | running (how status and wording are phrased)
one_liner: "" # optional: the sentence the audience should rememberbranding
Theme, colours, shape and logo. Set website and the agent takes the logo, brand colours and product name from your site; explicit values here win. name_rules are wording rules the agent always follows.
branding:
website: "" # optional: the agent takes logo, colours and name from this site
theme: midnight # dark: midnight | blueprint | graphite | forest | ember light: light | paper
primary: "" # main brand colour, hex (empty = the theme's)
secondary: "" # second colour, hex
shape: rounded # rounded | square | pill
logo: "" # icon:<lucide name>, or a path to an svg/png (stored inside the file)
name_rules: [] # e.g. ["Say Acme Group, never Acme Ltd"]sources
What the agent reads (paths relative to the repository root), which files win when sources disagree, and what to do about conflicts (report, ask before writing, or follow priority). derive_status_from points at manifests (Helm, Argo CD, Terraform…) so a box only counts as running if something actually deploys it. invent: never means no numbers, names or claims that aren't in the sources.
sources: # defaults; a diagram can override them
include: ["docs/**/*.md", "README.md"] # globs or URLs, relative to the repository root (not to this file)
exclude: []
priority: [] # files that win when sources disagree, most important first
derive_status_from: [] # e.g. ["helm/", "argocd/"]: manifests that show what really runs
on_conflict: report # report | ask | priority
cite_sources: true # show "Sources" in each box's panel
invent: never # never: no numbers, names or claims that aren't in the sourcesbehaviour
How the file behaves when it opens: the start screen, where the tour card sits, zooming to the focused part, which connections and labels show, the moving dots on the main flow, the legend, whether the editor is enabled (false locks the file) and keyboard shortcuts.
behaviour:
hero: true # start screen with title, pillars and "Start the guided tour"
tour_position: auto # auto | right | bottom
zoom_to_focus: true
edges_filter_by_view: true
edge_labels: focus # focus | never
particles: main-flow # main-flow | focus-only | "off" (quote off: YAML reads a bare off as false)
overview_edges: all # all | main | none
legend: collapsed # collapsed | open | "off"
editor: true # E edits the file in the browser; false locks it
keyboard: trueworkflow
How the agent works with you. With confirm_structure it proposes the areas, personas, tabs and tour first and waits for your OK. pause_after_extract stops after writing the content and the report. output is relative to the config file's folder.
workflow:
confirm_structure: true # the agent proposes the areas (and personas) and waits for your OK
pause_after_extract: false # stop after writing the content + report, before checking the result
output: "index.html" # relative to this file's folderdiagrams
One entry per diagram; with two or more the file gets a switcher (keys 1–9). Each has its own type (architecture, data-flow, process, journey, ecosystem, org, custom), viewpoint (product, mixed, technical), audience, map, personas, tabs (views), tour and sheets (overlays). map.detail sets the size: overview ~12–20 boxes, medium ~25–40, detailed ~40–60. focus, every notes field and comments are instructions to the agent.
diagrams:
- id: platform
name: "Platform" # shown in the switcher
type: architecture # architecture | data-flow | process | journey | ecosystem | org | custom
viewpoint: product # product (what it does for whom) | mixed | technical (components, technology)
focus: "" # what this diagram shows, in one or two sentences
audience:
who: [executives] # executives | architects | engineers | business | customers | investors
goal: "Understand what the platform does, for whom, and what comes next"
tone: executive # executive | technical | sales
language: en
sources: {} # optional overrides of the shared sources, e.g. { include: ["docs/product/**"] }
map:
detail: medium # overview (~12-20 boxes) | medium (~25-40) | detailed (~40-60)
external: true # users, client apps and third-party services, marked as External
customer_owned: true # mark what the customer owns and runs (their data centre, VPC, IdP)
frame_label: "" # optional caption on the frame around what is ours
technology: from-viewpoint # from-viewpoint (product: pick, mixed: pick, technical: full) | full | pick | "off"
must_show: []
leave_out: []
status:
enabled: true
meaning: scope # scope (MVP / Next / Later) | build (Running / Planned) | custom
values: [] # custom only: labels, e.g. ["Pilot", "Phase 2", "Later"]
notes: "" # layout wishes, groupings, naming
personas:
enabled: true # from the sources' users/roles/actors; each gets a path through the map
names: [] # optional: exactly these, e.g. ["Platform owner", "Application builder"]
on_map: false # true: also show them as boxes on the map, next to the applications they use
views: # tabs along the top; the overview is always first
presets: [main-flow, governance, operations, deployment] # any of: main-flow, governance, operations, deployment, data, security, cost, roadmap (or write your own in custom)
custom: [] # e.g. ["Usage patterns: a list U1/U2/U3, each highlighting its path"]
tour:
enabled: true
steps: "12-18" # wins over the style guide's default range
story: problem-solution # problem-solution | component-walk | use-case | value-first
use_case: ""
opening: problem # problem | vision | context
closing: why-this # why-this | next-steps | call-to-action
include: [roadmap, options, open-questions] # any of these three
notes: ""
overlays:
roadmap: { enabled: true, source: "" }
options: { enabled: false, title: "", source: "" }
custom: []
comments: "" # anything else for this diagram
# - id: technical # a second diagram, e.g. the same product for engineers
# name: "Technical view"
# type: architecture
# viewpoint: technical
# audience: { who: [engineers], tone: technical }
# tour: { steps: "8-12", story: component-walk }comments
Free text for the agent: what the audience cares about, what to emphasise, what is sensitive, what the last version got wrong. Comments override sources.priority (the agent still reports the conflict).
comments: |
Anything else the agent should know: what the audience cares about, what to emphasise,
what is sensitive, what the last version got wrong.The whole file
The template ships with the skill as templates/diagram.config.yaml. You can alsoview it on GitHub or copy every section above in order.