VS Code extension that previews Archify diagrams from their JSON sources (live, as you type) and opens rendered Archify HTML in a viewer tab. Bundles the Archify 3.0.1 renderer and runs it on VS Code's Node runtime. Adds validation diagnostics, JSON schema help, source-link navigation, export saving, render-to-file and open-in-browser commands. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
3.3 KiB
Brand marks
Use a brand mark only when a real product, provider, model family, channel, or
service identity helps the reader. Semantic type still explains what the node
does; brand explains whose product it is.
Agent decision path
-
Search the built-in catalogue when the request names a recognizable brand:
node bin/archify.mjs brands "Claude" --json -
Put the returned canonical ID in the node, participant, or state:
{ "id": "planner", "type": "backend", "label": "Claude", "brand": "claude" } -
If there is no catalogue match and the user supplied the official website, capture its icon explicitly:
node bin/archify.mjs brands capture "https://partner.example.com" --jsonPut the command's digest-pinned
brandvalue in the authored node:{ "id": "partner", "type": "external", "label": "Partner portal", "brand": { "url": "https://partner.example.com", "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" } } -
If there is no match and no user-provided URL, omit
brand. Do not invent a URL or silently assign a visually similar company.
Known-brand URLs resolve to the bundled vector instead of using the network.
For discovered icon href attributes, capture decodes the basic named references
amp, quot, apos, lt, gt (and their defined uppercase aliases), plus
decimal and hexadecimal numeric references, once before URL resolution. Thus
/icon.png?v=1&size=32 requests /icon.png?v=1&size=32. URL percent escapes
remain intact; nested escapes are not decoded recursively. This bounded decoder
does not add a general HTML parser or support every named HTML entity.
HTML reads stop at an explicit head ending outside comments, raw-text elements
and quoted attributes, including when those tokens span network chunks. The
256 KiB head limit and capture deadline still apply; a larger body after the
head is not read for icon discovery.
Unknown URL capture accepts only bounded raster image formats, blocks
credentials, nonstandard public ports, and private or link-local destinations,
uses bounded concurrency and one total deadline, and returns the captured
content digest. Later render and validate operations require that exact digest;
blocked, unavailable, changed, oversized, or unsafe content fails closed instead
of silently changing the artifact.
Page, icon and redirect requests send Accept-Encoding: identity. Capture does
not decompress response bodies: a successful response declaring another content
coding is closed and rejected explicitly. This keeps the existing byte limits
and pinned digest tied to the unencoded representation. A later usable icon may
still succeed; otherwise an encoding error is retained instead of being hidden
by an unrelated favicon 404.
The final artifact never fetches a brand asset when opened. Preset vectors and digest-verified captured site icons remain embedded in SVG, PNG, WebP, JPEG, Share Card, and WebM exports.
Use node bin/archify.mjs brands --json to inspect all canonical IDs, aliases,
categories, domains, and provenance. Current categories cover AI, cloud,
engineering, data, collaboration, business systems, channels, languages, and
frameworks.