diff --git a/README.md b/README.md
index 6a00ea5..492098c 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,11 @@
# DiffVisualizer — visual diffs in Agent Zero chat
+
+
+[](https://github.com/agent-zero-plugins/agent-zero-plugin-diff-visualizer/actions/workflows/plugin-e2e.yml) [](https://github.com/agent-zero-plugins/agent-zero-plugin-diff-visualizer/tree/main/tests/e2e/features) [](https://github.com/agent-zero-plugins/agent-zero-plugin-diff-visualizer/tags) [](https://github.com/agent-zero-plugins/agent-zero-plugin-diff-visualizer/blob/main/LICENSE) [](https://github.com/agent-zero-plugins/agent-zero-plugin-diff-visualizer/blob/main/CONTRIBUTING.md)
+
+
+
Renders unified-diff fenced code blocks as **side-by-side visual diffs** directly in the
Agent Zero chat UI — with a fullscreen maximize view, a copy-raw-source button, and
theme-aware styling. It also ships an agent **skill** that teaches the agent to emit
@@ -110,4 +116,4 @@ trace to those IDs.
## License
-Apache-2.0 — see [LICENSE](LICENSE).
+Apache-2.0 — see [LICENSE](LICENSE).
\ No newline at end of file
diff --git a/docs/BEHAVIOUR.md b/docs/BEHAVIOUR.md
new file mode 100644
index 0000000..2217f0d
--- /dev/null
+++ b/docs/BEHAVIOUR.md
@@ -0,0 +1,63 @@
+# DiffVisualizer — behaviour
+
+
+
+Each section is one scenario from `tests/e2e/features/`, with the screenshot the
+test captured at its final assertion. 10 of 10 scenarios have one.
+
+## Rendering diffs
+
+### A diff block in the chat is rendered as a visual diff
+BEH-1, BEH-3
+
+
+
+### The rendered diff offers maximize and copy
+BEH-2
+
+
+
+## Diff overlay, copy, and edge-case handling
+
+### Maximizing a rendered diff opens a single fullscreen overlay
+BEH-4
+
+
+
+### The overlay closes via its close button and the inline diff survives
+BEH-5
+
+
+
+### The overlay closes via a backdrop click
+BEH-5
+
+
+
+### The overlay closes via the Escape key
+BEH-5
+
+
+
+### Copying a rendered diff puts the raw diff text on the clipboard
+BEH-6
+
+
+
+### A multi-file diff renders both files inside one visual diff
+BEH-1
+
+
+
+### Malformed diff text falls back to the readable plain code block
+BEH-3
+
+
+
+### A non-diff code fence is left untouched
+BEH-1
+
+
diff --git a/docs/screenshots/a-diff-block-in-the-chat-is-rendered-as-a-visual-diff.png b/docs/screenshots/a-diff-block-in-the-chat-is-rendered-as-a-visual-diff.png
new file mode 100644
index 0000000..ef283a7
Binary files /dev/null and b/docs/screenshots/a-diff-block-in-the-chat-is-rendered-as-a-visual-diff.png differ
diff --git a/docs/screenshots/a-multi-file-diff-renders-both-files-inside-one-visual-diff.png b/docs/screenshots/a-multi-file-diff-renders-both-files-inside-one-visual-diff.png
new file mode 100644
index 0000000..605523c
Binary files /dev/null and b/docs/screenshots/a-multi-file-diff-renders-both-files-inside-one-visual-diff.png differ
diff --git a/docs/screenshots/a-non-diff-code-fence-is-left-untouched.png b/docs/screenshots/a-non-diff-code-fence-is-left-untouched.png
new file mode 100644
index 0000000..f8546c1
Binary files /dev/null and b/docs/screenshots/a-non-diff-code-fence-is-left-untouched.png differ
diff --git a/docs/screenshots/copying-a-rendered-diff-puts-the-raw-diff-text-on-the-clipboard.png b/docs/screenshots/copying-a-rendered-diff-puts-the-raw-diff-text-on-the-clipboard.png
new file mode 100644
index 0000000..75f8690
Binary files /dev/null and b/docs/screenshots/copying-a-rendered-diff-puts-the-raw-diff-text-on-the-clipboard.png differ
diff --git a/docs/screenshots/malformed-diff-text-falls-back-to-the-readable-plain-code-block.png b/docs/screenshots/malformed-diff-text-falls-back-to-the-readable-plain-code-block.png
new file mode 100644
index 0000000..be89b18
Binary files /dev/null and b/docs/screenshots/malformed-diff-text-falls-back-to-the-readable-plain-code-block.png differ
diff --git a/docs/screenshots/maximizing-a-rendered-diff-opens-a-single-fullscreen-overlay.png b/docs/screenshots/maximizing-a-rendered-diff-opens-a-single-fullscreen-overlay.png
new file mode 100644
index 0000000..7465f7a
Binary files /dev/null and b/docs/screenshots/maximizing-a-rendered-diff-opens-a-single-fullscreen-overlay.png differ
diff --git a/docs/screenshots/the-overlay-closes-via-a-backdrop-click.png b/docs/screenshots/the-overlay-closes-via-a-backdrop-click.png
new file mode 100644
index 0000000..a3cc7b2
Binary files /dev/null and b/docs/screenshots/the-overlay-closes-via-a-backdrop-click.png differ
diff --git a/docs/screenshots/the-overlay-closes-via-its-close-button-and-the-inline-diff-survives.png b/docs/screenshots/the-overlay-closes-via-its-close-button-and-the-inline-diff-survives.png
new file mode 100644
index 0000000..b770ad1
Binary files /dev/null and b/docs/screenshots/the-overlay-closes-via-its-close-button-and-the-inline-diff-survives.png differ
diff --git a/docs/screenshots/the-overlay-closes-via-the-escape-key.png b/docs/screenshots/the-overlay-closes-via-the-escape-key.png
new file mode 100644
index 0000000..8e07426
Binary files /dev/null and b/docs/screenshots/the-overlay-closes-via-the-escape-key.png differ
diff --git a/docs/screenshots/the-rendered-diff-offers-maximize-and-copy.png b/docs/screenshots/the-rendered-diff-offers-maximize-and-copy.png
new file mode 100644
index 0000000..ca0341f
Binary files /dev/null and b/docs/screenshots/the-rendered-diff-offers-maximize-and-copy.png differ