skills/git-nuget-readme/SKILL.md
Create or update a NuGet package README.md from git history and real .NET project metadata for repositories that ship a package from `src/`. Use this skill whenever the user asks to write a package README, refresh NuGet-facing docs, improve the repo README for a library, summarize the current branch into README copy, or make a package more compelling to adopt on NuGet. Treat requests like "update the README for this package", "write a NuGet README from git", "refresh the library README", "make this NuGet package easier to pick", or "generate a devex-friendly README for this assembly" as automatic triggers. The skill discovers the advertised packable project, grounds the README in real package and source metadata, preserves honest claims, and writes forthcoming, adoption-friendly copy instead of generic marketing fluff.
npx skillsauth add codebeltnet/agentic git-nuget-readmeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill creates or updates a package-facing README.md for a .NET repository by combining git history, actual project/package metadata, and concrete source-level capabilities. It improves the developer experience by pulling install guidance, package value, and a quick start closer to the top while keeping branding and tone derived from the current repository rather than from any hardcoded ecosystem template.
Read references/nuget-readme-blueprint.md before writing or rewriting the README.
README.md directly, then stop for user review.src/; ignore test/, tuning/, tooling/, and projects that are explicitly non-packable.Codebelt unless the current repository already uses it explicitly.Identify which packable project the README is meant to advertise.
Use this order:
src/ that matches the repo name, package ID, or solution identity.If multiple packable projects could plausibly own the README and the repo does not already make the primary one obvious, stop and ask which package the README should center.
Helpful commands:
git status --short --branch
rg --files src -g *.csproj
rg -n "<PackageId>|<AssemblyName>|<Description>|<TargetFramework|<TargetFrameworks>|<IsPackable>" src
Use the most explicit range the user gave you.
main, then master.Helpful commands:
git rev-parse --abbrev-ref HEAD
git rev-parse --abbrev-ref --symbolic-full-name @{upstream}
git merge-base HEAD @{upstream}
git merge-base HEAD main
git merge-base HEAD master
Collect the concrete facts the README should advertise.
Prefer explicit project metadata over inference. When a docs site or package URL cannot be proven from the repo, omit it instead of inventing it. Apply the same rule to branding: use the repository's actual identity, not a remembered template from another ecosystem.
Helpful commands:
rg -n "<PackageId>|<Title>|<Description>|<PackageProjectUrl>|<RepositoryUrl>|<AssemblyName>" src README.md Directory.Build.props Directory.Build.targets
rg -n "DocFx|docfx|nuget.org|PackageReference" README.md .docfx src
git remote -v
Understand what the package really offers and what changed in the chosen range.
Helpful commands:
git log --reverse --format=medium <range> -- <paths>
git log --reverse --stat --format=medium <range> -- <paths>
git diff --stat <base>..HEAD -- <paths>
git diff <base>..HEAD -- <paths>
rg -n "namespace |public (class|interface|struct|record|enum)|extension" src/<ProjectName>
rg --files test -g *Tests*.cs
rg -n "<ProjectName>|<PackageId>|namespace " test
Use the structure and tone from references/nuget-readme-blueprint.md.
Default shape:
Strong README characteristics:
When the repo already has a README, keep the accurate parts and improve the experience:
Write or update README.md directly.
Editing rules:
by <owner> or uses a branded suffix, do not add one just because another repo family does.After updating README.md, stop and let the user review it. Do not commit, tag, push, pack, or publish unless the user asks.
testing
Generate GitHub release notes by summarizing all commits and pull requests between two Git tags, branches, or the current branch and the upstream default branch. Use when the user asks to write release notes, generate release notes, draft a GitHub release, create release notes from tags, summarize changes between versions, summarize the current branch, or provides a GitHub compare URL. Trigger phrases: "release notes", "generate release notes", "what changed between", "summarize changes from v1 to v2", "GitHub release", "summarize this branch", compare URLs like "github.com/owner/repo/compare/v1...v2". When no explicit input is given, detects the current branch and compares against the upstream default branch automatically.
development
Classifies .NET library or NuGet package changes and recommends the correct release bump: Major, Minor, or Patch. Applies both Semantic Versioning (MAJOR.MINOR.PATCH) and .NET assembly/file versioning (Major.Minor.Build.Revision), grounded in Microsoft’s official .NET library compatibility rules. Use when evaluating the current branch, breaking changes, API diffs, public API changes, dependency updates, TFM/platform support, interface or enum changes, overloads, analyzers, source generators, or binary/source/behavioral/design-time/backwards compatibility. When no explicit change details or compare range are provided, inspects the current Git branch and compares it against the upstream default branch automatically. Always returns structured compatibility reasoning with the recommendation.
documentation
Generate source-grounded repository digest markdown from deterministic local evidence bundles. Use when the user asks to create, refresh, or complete repo/package digests, family or project overview pages, .bot/digests output, digest workspace workflows, or result/Index.md plus result/{PackageName}.md files for any repository URL. The skill runs its bundled .NET file-based evidence generator over a git clone, separates authoritative XML evidence from Markdown prompts and reading aids, writes package digests first, then writes the overview from completed package digests, and enforces complete-read grounding and no-invention rules even when file output is capped.
testing
Turn many commits into a curated grouped squash summary compatible with the opinionated wording style of git-visual-commits. Use when the user asks to squash a branch into a concise summary, write a squash-and-merge summary, summarize this branch, summarize a commit range or PR as grouped lines, clean up noisy commit history, or asks for a curated summary without committing. For normal squash-and-merge requests, default to the full current feature branch from merge-base to HEAD against the base branch instead of a same-named tracking remote, include commits from all authors unless the user explicitly narrows by author, and do not ask for yolo because the skill is read-only. Returns grouped lines only, preserves identifiers, merges overlap, drops noise, and avoids changelog wording.