From 4d365fb45d289b255659ca1b1b90a740b4ba8333 Mon Sep 17 00:00:00 2001 From: BigDataDZ <76271875+BigDataDZ@users.noreply.github.com> Date: Sun, 13 Sep 2026 15:39:11 +0800 Subject: [PATCH] docs(catalog): add the missing visual model to IP-028 The pattern template asks every entry for a visual model, and the other 28 entries all carry one between Expected behavior and Bad smell. IP-028 Connector Runtime Boundary was the only entry without it, so the connector runtime boundary had no diagram explaining the access-mode decision. Add a decision tree over the runtime policy the entry already documents: a missing policy fails closed, and access_mode selects between gate projection, a bounded metadata probe, and fixture-only runs. No other wording in the entry changes. Signed-off-by: BigDataDZ <76271875+BigDataDZ@users.noreply.github.com> --- docs/concepts/interaction-pattern-catalog.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/concepts/interaction-pattern-catalog.md b/docs/concepts/interaction-pattern-catalog.md index 69224b4b12..f30aa9aa23 100644 --- a/docs/concepts/interaction-pattern-catalog.md +++ b/docs/concepts/interaction-pattern-catalog.md @@ -2061,6 +2061,21 @@ connector_runtime_policy = { } ``` +**Visual Model** + +```mermaid +flowchart TD + A["Connector todo or packet proposes a live run"] --> B{"Runtime policy present?"} + B -->|"no"| C["fail closed: require the policy before the first run"] + B -->|"yes"| D{"access_mode"} + D -->|"private_metadata_only"| E["gate projection only, browser open stays closed"] + D -->|"public_metadata_only"| F["bounded metadata probe: head-only, forbidden prefixes blocked"] + D -->|"synthetic_fixture_only"| G["fixture only, no live route"] + E --> H["Owner decision unblocks the next stage"] + F --> H + G --> H +``` + **Bad smell** An agent opens a private connector's default web route because the page looks