What
Three projects under src/ each contain 1–2 source files and exist only to hold a single class or interface. Collapsing them reduces solution sprawl (currently 44 projects) without any logical boundary benefit.
Projects to collapse
src/Elastic.Documentation.Svg → merge into Elastic.Documentation
Contains one 296-line static class (EuiSvgIcons). Has its own csproj with two consumers (Elastic.Markdown, Elastic.Codex). Move the file into Elastic.Documentation, update project references.
src/services/Elastic.Documentation.Services → merge into Elastic.Documentation or tooling
Single file: an empty marker interface IService + ServiceInvoker. Referenced by ~8 service projects. Merge into Elastic.Documentation (or whichever shared project the services already depend on).
src/services/Elastic.Documentation.Integrations → merge into Elastic.Documentation.Deploying or .Assembler
Two files: S3IncrementalUploader and S3EtagCalculator. Consumed only by sibling service projects. Collapse into the deploying/assembler project that already depends on it.
How
For each: move source files, delete the .csproj, update PackageReference → ProjectReference in consumers, remove from docs-builder.slnx, run dotnet build.
Part of the broader ponytail over-engineering audit tracked in #PARENT.
What
Three projects under
src/each contain 1–2 source files and exist only to hold a single class or interface. Collapsing them reduces solution sprawl (currently 44 projects) without any logical boundary benefit.Projects to collapse
src/Elastic.Documentation.Svg→ merge intoElastic.DocumentationContains one 296-line static class (
EuiSvgIcons). Has its own csproj with two consumers (Elastic.Markdown,Elastic.Codex). Move the file intoElastic.Documentation, update project references.src/services/Elastic.Documentation.Services→ merge intoElastic.Documentationor toolingSingle file: an empty marker interface
IService+ServiceInvoker. Referenced by ~8 service projects. Merge intoElastic.Documentation(or whichever shared project the services already depend on).src/services/Elastic.Documentation.Integrations→ merge intoElastic.Documentation.Deployingor.AssemblerTwo files:
S3IncrementalUploaderandS3EtagCalculator. Consumed only by sibling service projects. Collapse into the deploying/assembler project that already depends on it.How
For each: move source files, delete the
.csproj, updatePackageReference→ProjectReferencein consumers, remove fromdocs-builder.slnx, rundotnet build.Part of the broader ponytail over-engineering audit tracked in #PARENT.