Rulebearing Playground Coverage Schemas GitHub

ADR-0053: x-dot-webpage draws its graph with GraphViz' dot, as dependency-cruiser does

Context

dependency-cruiser 18.2.0's x-dot-webpage reporter (src/report/dot-webpage/dot-module.mjs) renders the module-level dot program, runs dot -V to check that GraphViz is installed, pipes the program through dot -Tsvg, and wraps the SVG in an HTML page. Without GraphViz it throws "GraphViz dot, which is required for the 'x-dot-webpage' reporter doesn't seem to be available on this system". The SVG is GraphViz' layout; there is no way to produce it byte for byte without GraphViz.

The architecture's security posture says "no code execution outside the sandbox" and names Node (--sidecar node, --config-via-node) as the only spawned runtime. The binary already starts git (--affected, diff --base, attest, the cache key) and gh (adopt), which are tools, not code it evaluates. dot is the same kind of process: a fixed program with fixed arguments, fed a text the binary wrote.

The plan lists x-dot-webpage in wave 3 with the exit criterion "all twenty-one dependency-cruiser output types byte-compared".

Decision

Consequences

Alternatives considered