Repository navigation
feat: compose source-driven diagrams with Design, Taste and REUSE - #2
Conversation
Weaver consumer: semantic annotation and standalone canvas contractThe Weaver consumer exposed three framework-level failures. This request belongs in this existing Library PR; it should not be closed by another downstream renderer or page-specific CSS.
Acceptance should include generated combinations of roles, fonts, optional ordinals, glyphs and themes; source-bound Question mismatch refusal; measured group alignment and bounds; and standalone SVG image decoding on a dark host with pixel-alpha checks. Include negative controls that fail under the former first-text-only measurement and transparent-canvas behavior. Source/model identity must remain unchanged. The current Weaver local baseline generated all 108 figures, and the 30 measured model vectors passed independent readability and image-opacity checks. A separate complete 26-test run passed after splitting batched source-compilation hooks without widening their existing timeouts. These are downstream observations, not acceptance of the new upstream API. Raw failures remain outside Git. Downstream removal boundary: once the upstream public contract and a qualified package artifact are available, Weaver should consume the semantic primitives and remove its manual Question circle/text assembly, page-specific alignment correction and root-background override. Do not consume a moving worktree or silently replace the existing content-addressed dependency artifact. Existing runtime dependency pins remain unchanged. |
This adds a source-bound functional rendering Library. D2/SysML own Questions and model content; composable project functions, replaceable visual themes/icons, browser measurement and ELK produce offline HTML, SVG and PNG. The README starts with a complete numbered overview and uses one sketchbook visual language. Component architecture and Workflow remain separate.
The public Design contract binds audience, message, Questions and mandatory model references. Taste now participates before composition: ordered pure policies choose focus, optional scope, ELK direction and visual roles from explicit Question/model bindings and selected source observations. The same Library/Profile/Scenario program responds to adopter, maintainer and source-gap inputs without Case-specific layout recipes. Selection reasons and the input binding remain in the receipt; changed inputs require explicit reselection. Post-export inspection retains actual observations and advice without claiming aesthetic acceptance.
Mandatory subjects/relations and explicit Scope boundaries remain checked. Missing source observations participate in measured node content; supported declarations never confer verification or approval. Model adapters preserve SDK identities and exact model/source bindings. Existing compositors, ELK, Rough.js and typed Valibot contracts are reused; the raw D2 SVG fallback, duplicate theme paths and example package configuration are removed.
The project uses LGPL-2.1-or-later and follows REUSE: comment-capable files have SPDX headers, JSON/PNG use standard sidecars, existing mixed licenses remain intact, and embedded-font notices retain their actual owners. The redundant LGPL-only texts are removed. The original PR #1 history locates the concurrency test creation and mixed header in 9c8f608; 65725bd only updates the compiler query API. The test is project-specific code added alongside its Justfile change, with no recorded upstream copy. Its unsupported Apache header and now-unused Apache text are removed. Project-owned notices and example export defaults identify hardenedlinux Linux Team and Contributors; actual third-party font notices are preserved. Package archives reuse LICENSE and include the unmodified font text as LICENSE.OFL-1.1 plus asset notices. Optional host-supplied export attribution is serialized before HTML/SVG hashes and assigns no downstream copyright by default. Official REUSE CI checks the repository.
Validation:
Org 10.146, D2 90.138, package documentation and README describe the final contracts, trust boundary and real Case. Source observations and rendering receipts are not an issued C/Q/R, independent review or delivery authorization.