Flatten documentation structure and enhance design/verification content#8
Merged
Conversation
…n root
Move docs/design|verification|reqstream/{system}/{system}.{md,yaml} to
docs/{collection}/{system}.{md,yaml} per updated design-documentation.md,
verification-documentation.md, and reqstream-usage.md standards (system
files now live at the collection root; only subsystem/unit files remain
nested). Update docs/design/definition.yaml, docs/verification/definition.yaml,
requirements.yaml, and .reviewmark.yaml to reference the new flat paths.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ments SkiaSharp is a runtime NuGet dependency of DemaConsulting.Rendering.Skia (bitmap drawing and PNG/JPEG/WEBP encoding), so it should be documented as an OTS item alongside the build/compliance tools. Adds: - docs/design/ots/skiasharp.md (Purpose/Features Used/Integration Pattern) - docs/verification/ots/skiasharp.md (verified via existing renderer tests, no separate self-validation suite, matching the xUnit pattern) - docs/reqstream/ots/skiasharp.yaml (3 requirements traced to real renderer tests) - Updates docs/design/ots.md to list SkiaSharp and its runtime-library consumption model - Wires the new files into definition.yaml manifests, requirements.yaml, and .reviewmark.yaml (new OTS-SkiaSharp review-set) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… OTS overview Fixes from code-review agent findings: - docs/design/rendering-skia.md and docs/design/introduction.md incorrectly claimed SkiaSharp had no OTS integration design doc / that no OTS items are linked into delivered packages, contradicting the SkiaSharp OTS docs added in the previous commit. Corrected both to reflect SkiaSharp as the one runtime-library exception. - docs/design/introduction.md's OTS Software Items diagram was missing SkiaSharp. - docs/verification/ots.md (mandatory collection-level OTS verification overview per verification-documentation.md) did not exist. Added it and wired it into docs/verification/definition.yaml. - .reviewmark.yaml's per-system Design/Verification review-sets were missing the docs/design/ots.md / docs/verification/ots.md path entries required by reviewmark-usage.md's File Path Patterns for those review-set types. Added to all 5 systems. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nits Adds the mandatory sections required by .github/standards/design-documentation.md and .github/standards/verification-documentation.md that were flagged as missing by the formal-review batch (Rendering-Model, Rendering-Abstractions, Rendering-Layout, Rendering-Skia, Rendering-Svg, and OTS-SkiaSharp review-sets). - Unit design docs: add Purpose, Data Model, Key Methods, Error Handling, Dependencies, and Callers where missing. - Unit verification docs: add Verification Approach, Test Environment, Acceptance Criteria, and Test Scenarios where missing. - Subsystem design doc (rendering-layout/engine.md): add Interfaces and Design. - OTS-SkiaSharp design doc: expand Integration Pattern with SkiaSharp lifecycle/disposal guidance. All content is grounded in the real C# implementation under src/ and the real xUnit tests under test/. Non-applicable sections are documented inline where none were needed. Out-of-scope findings (compound requirements, review-set membership gaps, code/test style issues, file-move suggestions) were deliberately left unfixed per task scope and are recorded in the report. Validated with fix.ps1, lint.ps1, and dotnet reviewmark --lint (all passing).
… test conventions)
- Split compound requirements into single-criterion requirements:
- Rendering-OTS-SkiaSharp-Encode -> EncodePng/EncodeJpeg/EncodeWebp
- NotationMetrics TriangleGeometry/DiamondGeometry -> Dimensions + endpoint-placement pairs
- NotationMetrics BoxDecorations -> PortSquare/FolderTab/NoteFold/RoundedRectCorner/Badge/LabelBackground
- RenderingContracts Algorithm/Renderer -> Identifier/Apply and Identity/Write pairs
Updated all design/verification cross-references and parent requirement children lists.
- Added missing paths entries to .reviewmark.yaml review-sets (Rendering-Model-Verification,
Rendering-Abstractions-Verification, Rendering-Layout-Design, Rendering-Layout-Verification,
Rendering-Skia-Design, Rendering-Svg-Verification) so each includes its system-level doc.
- Investigated docs/verification/rendering-layout/engine/engine.md placement finding: left as-is
since docs/design and docs/reqstream already nest the Engine subsystem doc the same way, so
verification already mirrors the established (if imperfect) repo convention; fixing all three
hierarchies is out of scope here.
- Renamed EdgeRoutingOptionTests.cs methods to follow the
{ClassName}_{MethodUnderTest}_{Scenario}_{ExpectedBehavior} naming convention.
- Added labeled Arrange/Act/Assert comments to Skia renderer tests (PngRendererTests,
SkiaFormatRendererTests, PngEndMarkerTests).
BoxMetrics.FolderTabHeight and TitleAreaHeight previously dereferenced their theme parameter directly, raising an undocumented NullReferenceException on null input. Add ArgumentNullException.ThrowIfNull guards matching the existing NotationMetrics convention, document the new contract in XML doc comments, the unit design doc's Error Handling section, and add a Rendering-Abstractions-BoxMetrics-RejectNullTheme requirement traced to two new tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Rendering-Layout-InterconnectionEngine-Waypoints requirement said 'one waypoint list per input edge', contradicting the design doc and implementation, which deliberately return one waypoint list per acyclic edge after self-loop removal, duplicate-pair de-duplication, and back-edge reversal (required by the layered-layout pipeline's need for an acyclic graph to assign layers). Reword the requirement to describe the actual, already-documented acyclic-edge contract instead of changing the implementation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… sized view BuildSizedView() built a fresh view graph for each container scope but never carried over the scope's own CoreOptions.Direction override, so a leaf algorithm that reads Direction directly from the graph (LayeredLayoutAlgorithm) silently fell back to the shared options' direction instead of a container-specific override. Propagate the scope's Direction override onto the sized view, mirroring the existing Algorithm-override handling in ResolveScopeAlgorithm. Adds a regression test and traces the fix with a new Rendering-Layout-HierarchicalLayout-PropagatesDirection requirement. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…adius RoundedRectRadius(Theme) already validated and documented a null-theme ArgumentNullException, but no test exercised the error path. Adds the missing regression test and traces it with a new Rendering-Abstractions-NotationMetrics-RejectNullTheme requirement. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
LayoutAlgorithmRegistry_RegisterThenResolve_ReturnsAlgorithm and RendererRegistry_RegisterThenResolve_ReturnsRenderer previously only checked registry lookup, but the verification doc claimed they exercised ILayoutAlgorithm.Apply and IRenderer.Render. Neither contract method was ever invoked. Both tests now call Apply/Render on the resolved instance and assert on the result, so the documented claim matches reality. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Error Handling section claimed the final fallback keeps the label at its preferred midpoint even if it still overlaps another label. The code actually drops the label just beneath every already-placed label, guaranteeing no overlap in all cases. Reword the design doc to match the (stronger, correct) implementation rather than changing the code. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ComponentPacker.LayoutComponent rebuilt each disconnected component as a fresh LayeredGraph but never copied the parent graph's BackEdgeEntryApproach, so a caller-customized reversed-edge clearance silently reverted to the LayeredLayoutMetrics.ConnectorClearance default for any multi-component (packed) graph. Single-component graphs were unaffected since they pass through RunInner directly without rebuilding. Added a regression test using two disconnected triangle components (each with a short cycle producing a long back edge) that proves the routed back-edge corridor now reflects the parent's configured clearance instead of always defaulting. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Note: the ComponentPacker BackEdgeEntryApproach issue remains intentionally out of scope and is not fixed in this commit. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit applies the minimal OTS inventory update by adding SonarScanner for .NET to docs/design/ots.md without expanding companion artifacts beyond the literal finding scope. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add Rendering-Layout-LayeredPipeline-PackedComponentsBackEdgeApproach requirement documenting that the component-packing stage propagates the parent graph's BackEdgeEntryApproach to every packed child component, and trace it to the new ComponentPacker_Apply_MultiComponent_ PropagatesBackEdgeEntryApproach regression test. Updates the layered-pipeline design doc's ComponentPacker description and traceability table, and the verification doc's Test Scenarios and Requirements Coverage sections, following the fix committed in 849f3b2. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This pull request updates the Rendering repository’s traceability and documentation structure while adding targeted behavior fixes and regression tests across the Layout and renderer stacks.
Changes:
- Expanded unit/system requirements and verification artifacts (including new OTS evidence for SkiaSharp) and flattened/standardized documentation structure and headings.
- Added/strengthened tests for SVG badges/end markers, Skia format metadata, registries, and argument validation in shared metric helpers.
- Fixed two layout regressions by propagating per-scope direction overrides in hierarchical layout and propagating
BackEdgeEntryApproachinto packed layered components.
Reviewed changes
Copilot reviewed 166 out of 168 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| test/DemaConsulting.Rendering.Svg.Tests/SvgRendererPortedTests.cs | Adds SVG badge rendering tests (bullseye/diamond/bars). |
| test/DemaConsulting.Rendering.Svg.Tests/SvgEndMarkerTests.cs | Adds SVG end-marker reference tests (filled arrow/diamond/circle/bar). |
| test/DemaConsulting.Rendering.Skia.Tests/SkiaFormatRendererTests.cs | Improves AAA clarity and checks WEBP FileExtensions metadata. |
| test/DemaConsulting.Rendering.Skia.Tests/PngRendererTests.cs | Improves AAA clarity for PNG signature test. |
| test/DemaConsulting.Rendering.Skia.Tests/PngEndMarkerTests.cs | Improves AAA clarity for pixel-based end-marker tests. |
| test/DemaConsulting.Rendering.Layout.Tests/HierarchicalLayoutAlgorithmTests.cs | Adds regression test for nested direction override propagation. |
| test/DemaConsulting.Rendering.Layout.Tests/Engine/Layered/ComponentPackerTests.cs | Adds regression test ensuring back-edge entry approach propagates into packed components. |
| test/DemaConsulting.Rendering.Layout.Tests/EdgeRoutingOptionTests.cs | Renames tests for clearer intent and stable naming. |
| test/DemaConsulting.Rendering.Abstractions.Tests/RegistryTests.cs | Strengthens registry tests to prove contract methods are invoked, not just resolved. |
| test/DemaConsulting.Rendering.Abstractions.Tests/NotationMetricsTests.cs | Adds null-argument validation test. |
| test/DemaConsulting.Rendering.Abstractions.Tests/BoxMetricsTests.cs | Adds null-argument validation tests for BoxMetrics helpers. |
| src/DemaConsulting.Rendering.Skia/JpegRenderer.cs | Updates XML doc to reflect theme background behavior. |
| src/DemaConsulting.Rendering.Layout/HierarchicalLayoutAlgorithm.cs | Propagates CoreOptions.Direction override onto sized-view graphs. |
| src/DemaConsulting.Rendering.Layout/Engine/Layered/ComponentPacker.cs | Propagates BackEdgeEntryApproach into child graphs during component packing. |
| src/DemaConsulting.Rendering.Abstractions/Theme.cs | Normalizes spelling in XML doc (“colour” → “color”). |
| src/DemaConsulting.Rendering.Abstractions/BoxMetrics.cs | Adds explicit null checks and documents thrown exceptions. |
| requirements.yaml | Updates ReqStream include paths and adds SkiaSharp OTS requirements include. |
| docs/verification/rendering/options.md | Expands verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering/layout-graph.md | Expands verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering.md | Renames sections and clarifies system verification structure. |
| docs/verification/rendering-svg.md | Renames “Strategy” → “Approach” and adjusts section naming. |
| docs/verification/rendering-skia/webp-renderer.md | Expands verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering-skia/png-renderer.md | Expands verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering-skia/jpeg-renderer.md | Expands verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering-skia.md | Renames “Strategy” → “Approach” and adjusts section naming. |
| docs/verification/rendering-layout/layered-layout-algorithm.md | Expands verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering-layout/hierarchical-layout-algorithm.md | Expands verification details and adds direction-propagation scenario mapping. |
| docs/verification/rendering-layout/engine/orthogonal-edge-router.md | Expands engine verification approach/environment/acceptance criteria. |
| docs/verification/rendering-layout/engine/engine.md | Expands engine subsystem verification approach/environment/acceptance criteria. |
| docs/verification/rendering-layout/engine/containment-packer.md | Expands containment packer verification approach/environment/acceptance criteria. |
| docs/verification/rendering-layout/edge-routing-option.md | Expands edge-routing option verification approach/environment/acceptance criteria. |
| docs/verification/rendering-layout/default-layout.md | Expands default layout verification approach/environment/acceptance criteria. |
| docs/verification/rendering-layout/containment-layout.md | Expands containment layout verification approach/environment/acceptance criteria. |
| docs/verification/rendering-layout/containment-layout-algorithm.md | Expands containment algorithm verification approach/environment/acceptance criteria. |
| docs/verification/rendering-layout/connector-router.md | Expands connector router verification approach/environment/acceptance criteria. |
| docs/verification/rendering-layout.md | Renames “Strategy” → “Approach” and adjusts section naming. |
| docs/verification/rendering-abstractions/theme.md | Expands theme verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering-abstractions/registries.md | Expands registries verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering-abstractions/connector-label-placer.md | Expands verification approach/environment/acceptance criteria and scenarios. |
| docs/verification/rendering-abstractions/box-metrics.md | Expands verification details and adds null-theme requirement coverage. |
| docs/verification/rendering-abstractions.md | Refines system-level abstractions verification decomposition and scenario mapping. |
| docs/verification/ots/xunit.md | Standardizes headings and scenario structure. |
| docs/verification/ots/weasyprint.md | Standardizes headings and scenario structure. |
| docs/verification/ots/versionmark.md | Standardizes headings and scenario structure. |
| docs/verification/ots/sonarmark.md | Standardizes headings and scenario structure. |
| docs/verification/ots/skiasharp.md | Adds SkiaSharp OTS verification evidence and scenario mappings. |
| docs/verification/ots/sarifmark.md | Standardizes headings and scenario structure. |
| docs/verification/ots/reviewmark.md | Standardizes headings and scenario structure. |
| docs/verification/ots/reqstream.md | Standardizes headings and scenario structure. |
| docs/verification/ots/pandoc.md | Standardizes headings and scenario structure. |
| docs/verification/ots/fileassert.md | Standardizes headings and scenario structure. |
| docs/verification/ots/buildmark.md | Standardizes headings and scenario structure. |
| docs/verification/ots.md | Adds an OTS verification index/strategy overview. |
| docs/verification/introduction.md | Updates verification scope/exclusions and adds SkiaSharp mention. |
| docs/verification/definition.yaml | Updates verification document input list for flattened structure and OTS index. |
| docs/reqstream/rendering/platform-requirements.yaml | Renames section title for consistency. |
| docs/reqstream/rendering/options.yaml | Renames section title for consistency. |
| docs/reqstream/rendering/layout-tree.yaml | Renames section title for consistency. |
| docs/reqstream/rendering/layout-graph.yaml | Renames section title for consistency. |
| docs/reqstream/rendering.yaml | Renames system section title for consistency. |
| docs/reqstream/rendering-svg/svg-renderer.yaml | Adds badge/end-marker requirements and updates section title. |
| docs/reqstream/rendering-svg.yaml | Adds system-level SVG requirements file. |
| docs/reqstream/rendering-skia/webp-renderer.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-skia/skia-raster-renderer.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-skia/png-renderer.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-skia/jpeg-renderer.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-skia.yaml | Adds system-level Skia requirements file. |
| docs/reqstream/rendering-layout/layered-layout-algorithm.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-layout/hierarchical-layout-algorithm.yaml | Adds direction-propagation requirement and updates section title. |
| docs/reqstream/rendering-layout/engine/orthogonal-edge-router.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-layout/engine/layered-pipeline.yaml | Adds packed-components back-edge approach requirement and updates section title. |
| docs/reqstream/rendering-layout/engine/engine.yaml | Renames engine subsystem and refines child requirement decomposition. |
| docs/reqstream/rendering-layout/engine/containment-packer.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-layout/edge-routing-option.yaml | Updates section title and referenced test names. |
| docs/reqstream/rendering-layout/default-layout.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-layout/containment-layout.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-layout/containment-layout-algorithm.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-layout/connector-router.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-layout.yaml | Renames system section title and adds new child requirements. |
| docs/reqstream/rendering-abstractions/theme.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-abstractions/rendering-contracts.yaml | Splits/renames contract requirements and updates IDs/tests. |
| docs/reqstream/rendering-abstractions/rendering-abstractions.yaml | Removes old system-level abstractions requirements file (replaced by flattened structure). |
| docs/reqstream/rendering-abstractions/registries.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-abstractions/connector-label-placer.yaml | Updates section title for consistency. |
| docs/reqstream/rendering-abstractions/box-metrics.yaml | Adds null-theme rejection requirement and updates section title. |
| docs/reqstream/ots/skiasharp.yaml | Adds SkiaSharp OTS requirements and test evidence links. |
| docs/design/rendering/rendering.md | Removes old nested rendering model design file (replaced by flattened structure). |
| docs/design/rendering/layout-tree.md | Expands unit design sections (purpose/methods/error handling/deps/callers). |
| docs/design/rendering.md | Adds flattened rendering model system design document. |
| docs/design/rendering-svg/rendering-svg.md | Removes old nested SVG design file (replaced by flattened structure). |
| docs/design/rendering-svg.md | Adds flattened SVG system design document. |
| docs/design/rendering-skia/webp-renderer.md | Expands unit design sections (methods/error handling/deps/callers). |
| docs/design/rendering-skia/rendering-skia.md | Removes old nested Skia system design file (replaced by flattened structure). |
| docs/design/rendering-skia/png-renderer.md | Expands unit design sections (methods/error handling/deps/callers). |
| docs/design/rendering-skia/jpeg-renderer.md | Expands unit design sections (methods/error handling/deps/callers). |
| docs/design/rendering-layout/rendering-layout.md | Removes old nested layout design file (replaced by flattened structure). |
| docs/design/rendering-layout/layered-layout-algorithm.md | Standardizes headings and section structure. |
| docs/design/rendering-layout/engine/orthogonal-edge-router.md | Expands design with dependencies/callers sections and standardizes headings. |
| docs/design/rendering-layout/engine/layered-pipeline.md | Documents back-edge approach propagation for packed components and adds deps/callers. |
| docs/design/rendering-layout/engine/interconnection-layout-engine.md | Refines requirement traceability granularity and standardizes headings. |
| docs/design/rendering-layout/engine/engine.md | Expands subsystem interfaces/dependencies/callers and standardizes headings. |
| docs/design/rendering-layout/engine/containment-packer.md | Standardizes headings and section structure. |
| docs/design/rendering-layout/edge-routing-option.md | Expands key methods/error handling/deps/callers sections. |
| docs/design/rendering-layout/containment-layout.md | Standardizes headings and section structure. |
| docs/design/rendering-layout/containment-layout-algorithm.md | Adds explicit dependencies/callers sections. |
| docs/design/rendering-layout/connector-router.md | Adds explicit dependencies/callers sections. |
| docs/design/rendering-abstractions/theme.md | Adds error handling/deps/callers sections and standardizes headings. |
| docs/design/rendering-abstractions/rendering-abstractions.md | Removes old nested abstractions design file (replaced by flattened structure). |
| docs/design/rendering-abstractions/registries.md | Adds error handling/deps/callers sections and standardizes headings. |
| docs/design/rendering-abstractions/connector-label-placer.md | Adds error handling/deps/callers sections and standardizes headings. |
| docs/design/rendering-abstractions/box-metrics.md | Documents null-argument contract and adds deps/callers sections. |
| docs/design/ots/xunit.md | Adds xUnit integration design document. |
| docs/design/ots/weasyprint.md | Adds WeasyPrint integration design document. |
| docs/design/ots/versionmark.md | Adds VersionMark integration design document. |
| docs/design/ots/sonarmark.md | Adds SonarMark integration design document. |
| docs/design/ots/sarifmark.md | Adds SarifMark integration design document. |
| docs/design/ots/reviewmark.md | Adds ReviewMark integration design document. |
| docs/design/ots/reqstream.md | Adds ReqStream integration design document. |
| docs/design/ots/pandoc.md | Adds Pandoc integration design document. |
| docs/design/ots/fileassert.md | Adds FileAssert integration design document. |
| docs/design/ots/buildmark.md | Adds BuildMark integration design document. |
| docs/design/ots.md | Adds OTS integration design index/strategy document. |
| docs/design/introduction.md | Updates design navigation and documents flattened structure + OTS docs mapping. |
| docs/design/definition.yaml | Updates design document input list for flattened structure and OTS integration docs. |
| .github/standards/testing-principles.md | Removes redundant header text to streamline standards doc. |
| .github/standards/csharp-testing.md | Removes redundant “Before submitting…” header to streamline checklist. |
| .github/standards/csharp-language.md | Removes redundant preface lines from documentation example section. |
| .github/standards/coding-principles.md | Streamlines introductory text and clarifies “Full Symbol Documentation” wording. |
| .github/agents/software-architect.agent.md | Adds “Shared Package” to the controlled vocabulary list. |
| .github/agents/lint-fix.agent.md | Standardizes report template to include explicit report path field. |
| .github/agents/formal-review.agent.md | Clarifies context-vs-reviewed file handling and standardizes report path field. |
| .github/agents/developer.agent.md | Adds explicit companion-artifact expectations and standardizes report path field. |
| .cspell.yaml | Adds “hotspots” to the custom dictionary. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- docs/verification/rendering-abstractions/registries.md: correct the Verification Approach description of FakeAlgorithm.Apply and FakeRenderer.Render. They are intentionally non-no-op (they produce fixed, distinguishable output) so the registry tests can prove the resolved instance's Apply/Render was actually invoked, not merely that the registry resolved the correct type. - test/DemaConsulting.Rendering.Svg.Tests/SvgRendererPortedTests.cs: the Bullseye, Diamond, HorizontalBar, and VerticalBar badge-shape tests searched the entire rendered SVG document for a circle/polygon/line element, but those same element types also appear in the renderer's shared <defs> end-marker definitions, so each assertion could pass even if the badge itself failed to render. Added a BodyAfterDefs helper that restricts the search to the SVG body following the closing </defs> tag, so these tests specifically verify the badge output. Addresses the 5 review comments left by the automated Copilot PR reviewer on PR #8. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add PropertyHolder.OverlayOnto(parent) as a generic, property-agnostic cascading primitive (child's explicit values win over parent's already- resolved snapshot). - Refactor HierarchicalLayoutAlgorithm to thread a cascaded LayoutOptions snapshot through recursion (replacing the old algoId/inherited string- threading that only cascaded CoreOptions.Algorithm), so Direction, EdgeRouting, HierarchyHandling, NodeSpacing, and LayerSpacing now cascade correctly through nested containers too. Preserves both existing scope conventions (Algorithm override on the container node itself; other properties on node.Children) and the flat-fast-path guarantee (no containers -> delegates straight to the leaf algorithm with the original unmutated graph). - Fix ContainmentLayoutAlgorithm.Apply to resolve EdgeRouting via a new ResolveEdgeRouting helper (graph override -> options -> default), mirroring LayeredLayoutAlgorithm.ResolveDirection; previously the graph's own EdgeRouting override had zero effect. - Verify GalleryDiagrams.MixedDirectionNested (intake -> pipeline(Down, containing validate/transform/publish) -> archive) and its catalog/test entries are correct, then regenerate the gallery. Only mixed-direction-nested.svg has real content changes; whitespace-only churn in six unrelated SVGs was reverted. - Add regression tests: PropertyHolder.OverlayOnto unit tests; 3-level Direction cascade tests (inherit-through-unset middle level and mid-level override precedence); an EdgeRouting cascade test using a recording test-double algorithm; a ContainmentLayoutAlgorithm EdgeRouting graph-over-options precedence test. Flat-fast-path regression tests confirmed unchanged and passing. - Update CoreOptions.cs and HierarchicalLayoutAlgorithm.cs XML docs, design docs (rendering/options, hierarchical-layout-algorithm, containment-layout-algorithm), verification docs, and the user guide to describe the generalized cascading model, with a 3-level example. - Update reqstream: add Rendering-Model-Options-Cascade; rename Rendering-Layout-HierarchicalLayout-PropagatesDirection to ...-CascadesOptions (generalized to all 6 properties); add Rendering-Layout-HierarchicalLayout-HonorsScopeEdgeRouting and Rendering-Layout-ContainmentAlgorithm-HonorsScopeEdgeRouting. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Lists HierarchyHandling alternate modes, NodeSpacing, and LayerSpacing as accepted-but-not-yet-honored options, so this deferred work survives across sessions instead of living only in scattered doc comments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant improvements and clarifications to the agent orchestration and reporting process for software development, planning, quality, and review agents. The main focus is on making the planning phase explicit with a new
planning.agent.md, enhancing traceability and companion artifact requirements, and standardizing report outputs and compliance checks across all agents.Key changes include:
Agent Workflow and Planning Enhancements
planning.agent.mdagent that formalizes the planning phase: it investigates the codebase, produces a detailed implementation plan, identifies all required companion artifacts, analyzes assumptions and risks, and outputs a standardized report. This agent is now explicitly invoked in the implementation orchestration flow. [1] [2]Quality and Companion Artifact Compliance
Reporting and Output Standardization
.agent-logs/path and includes a clear summary section. [1] [2] [3] [4]Review and Documentation Process
Minor Improvements
These changes collectively improve traceability, compliance, and clarity in the agent-driven software development workflow, making expectations and outputs more explicit and auditable.