Skip to content
published Visibility internal Owner erik@uvilo.com Approver _ Created _ Updated _

Artifacts in Markdown

When to Use

Embedding self-contained renderable content (diagrams, HTML widgets, SVG, formatted docs) into a markdown file.

Prerequisites

  • Target markdown file exists in the workspace
  • Content is fully self-contained (no placeholders, no external references, no “see above”)

Procedure

  1. Choose the artifact type from the supported types table below.
  2. Pick a stable identifier in kebab-case. Reuse the same identifier to update an existing artifact in place.
  3. Write the artifact block using the syntax below.
  4. Set display: panel (default — preview card, click opens side panel) or inline (renders in the document). Use inline only for short snippets.
  5. Verify the body is complete and self-contained — no placeholders, no ellipses, no cross-references to surrounding text.

Syntax

```artifact
identifier: my-artifact
type: <type from table>
title: Human-Readable Title
display: panel
---
<body — format depends on type>
```

Supported Types

typecontent
text/markdownFull markdown text
text/htmlFull HTML document
image/svg+xmlFull <svg xmlns="…">…</svg>
application/vnd.mermaidMermaid source only — no ```mermaid fence
application/vnd.markdown-fileWorkspace path only (e.g. Forge/Output/foo.md) — not file body

Rules

  • No placeholders. Every artifact body must be complete and renderable on its own.
  • Reuse identifiers. Same identifier = update in place. Different identifier = new artifact.
  • No Mermaid fences. For application/vnd.mermaid, provide raw Mermaid source without a ```mermaid code fence.
  • Markdown-file type = path only. For application/vnd.markdown-file, the body is a workspace-relative file path, not the file contents.
  • Default display is panel. Only use inline for short content that benefits from in-document rendering.