Files
archify-vscode-ext/vendor/archify/references/brand-marks.md
T
root-at-skicandClaude Opus 5.5 22815a9940 Archify Diagram Viewer 0.1.0
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>
2026-09-30 12:44:15 +03:00

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

  1. Search the built-in catalogue when the request names a recognizable brand:

    node bin/archify.mjs brands "Claude" --json
    
  2. Put the returned canonical ID in the node, participant, or state:

    {
      "id": "planner",
      "type": "backend",
      "label": "Claude",
      "brand": "claude"
    }
    
  3. 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" --json
    

    Put the command's digest-pinned brand value in the authored node:

    {
      "id": "partner",
      "type": "external",
      "label": "Partner portal",
      "brand": {
        "url": "https://partner.example.com",
        "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
      }
    }
    
  4. 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&amp;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.