Skip to content

Give every published package its own DESCRIPTION.md - #361

Merged
matt-edmondson merged 1 commit into
mainfrom
claude/syntax-highlighting-library-3dbkoo
Sep 8, 2026
Merged

Give every published package its own DESCRIPTION.md#361
matt-edmondson merged 1 commit into
mainfrom
claude/syntax-highlighting-library-3dbkoo

Conversation

@matt-edmondson

Copy link
Copy Markdown
Contributor

ktsu.Sdk resolves DESCRIPTION.md from the project directory and falls back to the solution root:

<DescriptionFilePath Condition="Exists($(DescriptionFilePathProject))">$(DescriptionFilePathProject)</DescriptionFilePath>
<DescriptionFilePath Condition="!Exists($(DescriptionFilePathProject)) And Exists($(DescriptionFilePathSolution))">$(DescriptionFilePathSolution)</DescriptionFilePath>

Seven packages had their own file; six did not, so every one of those shipped the root description — the whole ImGui suite's elevator pitch — as its NuGet description. Someone landing on ktsu.NodeGraph, a package with no dependencies and no UI, was told about PID frame limiting and 50+ themes.

What each one now says

Package The gist
ktsu.ForceDirectedLayout Pure simulation, no rendering or runtime dependencies, three surfaces over one core, AOT- and trim-clean, plus the Native AOT C ABI
ktsu.ImGui.Color The bridge between ktsu.Semantics.Color and Dear ImGui — conversions at the seam, contrast and accessibility analysis, no ImGui.App dependency
ktsu.ImGui.Markdown CommonMark via Markdig, DPI-aware heading scale, the code-block renderer hook, cached and parse-once APIs
ktsu.ImGui.NodeEditor ImNodes editor with engine, renderer and input handler separated; attribute-declared nodes; optional force-directed layout; zoom
ktsu.NodeGraph Attributes and type-compatibility rules only, a built-in node library, and no dependencies at all
ktsu.SyntaxHighlighting Classified token runs with no drawing, fifteen languages, embedded-language detection, cached tokenization

Each leads with what the package does and names what it deliberately does not depend on, since that layering is the reason several of these are separate packages at all. Every claim was checked against the project's own .csproj and source — the "no dependencies at all" in NodeGraph, the IsAotCompatible/IsTrimmable and Solve in ForceDirectedLayout, the zoom range in NodeEditorRenderer, the library folders behind NodeGraph's node list.

ForceDirectedLayout.Native is IsPackable=false and needs none, so it is untouched.

Verification

Packed SyntaxHighlighting and read the description back out of the generated .nuspec to confirm the per-project file wins over the root fallback.

Two things noticed while checking, both left alone as out of scope: ImGui.NodeEditor/README.md does not mention the zoom added in #359, and TAGS.md exists only at the root, so every package still shares one tag set.

🤖 Generated with Claude Code

https://claude.ai/code/session_015qVmjxGLzVE2mZctNNjSJC


Generated by Claude Code

ktsu.Sdk reads DESCRIPTION.md from the project directory and falls back to
the solution root, so the six packages without one were all shipping the
whole-suite description to NuGet: ForceDirectedLayout, ImGui.Color,
ImGui.Markdown, ImGui.NodeEditor, NodeGraph and SyntaxHighlighting each
advertised the ImGui suite rather than themselves.

Each now says what its own package does and what it does not depend on,
since the layering is the reason several of them exist separately — NodeGraph
and ForceDirectedLayout reference no UI, SyntaxHighlighting no graphics API,
and ImGui.Color and ImGui.Markdown no application host.

ForceDirectedLayout.Native is IsPackable=false and needs none.

Verified by packing SyntaxHighlighting and reading the description back out
of the generated nuspec.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015qVmjxGLzVE2mZctNNjSJC
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants