Skip to content

V0.10.0/dotnet nuget update - #40

Open
gimlichael wants to merge 18 commits into
mainfrom
v0.10.0/dotnet-nuget-update
Open

V0.10.0/dotnet nuget update#40
gimlichael wants to merge 18 commits into
mainfrom
v0.10.0/dotnet-nuget-update

Conversation

@gimlichael

Copy link
Copy Markdown
Member

This pull request introduces the new dotnet-nuget-update skill, a deterministic tool for auditing and updating NuGet dependencies in .NET repositories. It ensures every declared package version is accounted for before any update, supports both central and project-level package management, preserves compatibility markers, and offers both interactive and automated update modes. The update also adds comprehensive documentation, test coverage, and offline-testable scripts.

New skill: dotnet-nuget-update

  • Introduces the dotnet-nuget-update skill for complete NuGet dependency auditing and updating, supporting central and project-level versioning, TFM-band awareness, stable/prerelease intent inference, and two interactive modes (normal and yolo). [1] [2]
  • Bundles deterministic scripts for dependency graph enumeration, package version resolution, TFM matrix discovery, and minimal XML edits that preserve comments and structure.
  • Implements per-process memoization for NuGet feeds and supports deterministic offline testing via filesystem fixtures.
  • Enforces a complete-audit invariant and preserves XML comments as update notes, requiring explicit attention for rationale-marked updates.
  • Documents the skill in the README.md with catalog entry, installation instructions, and a detailed "Why dotnet-nuget-update?" section explaining its approach to dependency management. [1] [2] [3]

Release and documentation updates

  • Adds a new 0.10.0 release entry in CHANGELOG.md describing the new skill and its features.
  • Links the new release in the version history section.

aicia-bot and others added 3 commits September 7, 2026 23:00
Introduce complete NuGet dependency audit and update workflow with support for central package management and project-level versioning. Handles TFM-aware updates, stable/prerelease intent tracking, major version approval batching, and offline-testable scenarios. Includes bundled scripts for audit, comparison, and structured file edits.
Add dotnet-nuget-update to the Available Skills catalog table with full skill description, include the npx installation command in the setup section, and add a 'Why dotnet-nuget-update?' community health section explaining the need for complete dependency graph auditing, TFM-band awareness, and preservation of intentional pins and compatibility markers.
@gimlichael gimlichael self-assigned this Sep 7, 2026
@greptile-apps

greptile-apps Bot commented Sep 7, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

The PR is not yet safe to merge because its supported Git-ref validation mode can fail solely when the selected historical tree predates the newly extracted reference file.

Fix All in CodexFindings

  1. P1 Historical Ref Validation Fails
Fix with agent prompt
### Issue 1
scripts/validate-skill-templates.ps1:2752
When `-Ref` selects a committed tree from before `grouping-examples.md` was introduced, this unconditional lookup reports the reference file as missing. The Git visual commits validation block then fails instead of validating that historical tree.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

  • Supports central and project-level NuGet declarations, TFM-aware resolution, prerelease intent, and offline fixtures.
  • Adds structural XML update tooling and focused regression suites.
  • Refactors visual-commit grouping guidance into a bundled reference and updates its validator.
  • Revises repository evaluation and concurrent-validation guidance.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    Repo[.NET repository] --> Audit[Enumerate package declarations]
    Audit --> Resolve[Resolve compatible versions]
    Resolve --> Classify[Classify automatic, approval, or unresolved]
    Classify --> Apply[Apply targeted XML updates]
    Apply --> Validate[Run deterministic validation]
Loading

Reviews (8) · Last reviewed commit: "✅ update validation assertions for git-v..."

Comment thread skills/dotnet-nuget-update/scripts/Apply-PackageUpdates.ps1
Comment thread skills/dotnet-nuget-update/scripts/Apply-PackageUpdates.ps1 Outdated
Comment thread skills/dotnet-nuget-update/scripts/Get-DependencyAudit.ps1
Comment thread skills/dotnet-nuget-update/scripts/_common.ps1
Comment thread skills/dotnet-nuget-update/scripts/_common.ps1
Comment thread skills/dotnet-nuget-update/scripts/_common.ps1
Comment thread skills/dotnet-nuget-update/scripts/_common.ps1
Comment thread skills/dotnet-nuget-update/scripts/_common.ps1 Outdated
Comment thread skills/dotnet-nuget-update/scripts/Get-TargetFrameworks.ps1
Enhance file encoding detection to support UTF-32 and UTF-16 variants. Improve line-ending preservation with better handling of mixed styles. Refactor XML and NuGet version parsing with more sophisticated patterns and error handling. Strengthen cross-line tag parsing and version validation for edge cases in package updates and audit workflows.
Comment thread skills/dotnet-nuget-update/scripts/Get-DependencyAudit.ps1
Comment thread skills/dotnet-nuget-update/scripts/Get-TargetFrameworks.ps1 Outdated
Comment thread skills/dotnet-nuget-update/scripts/Apply-PackageUpdates.ps1 Outdated
Improve central vs project package declaration routing to correctly handle updates targeting project files. Enhance conflict reporting to enumerate all conflicting sources when unspecified. Fix property resolution precedence to preserve first-matched declarations instead of overwriting with later files.
Comment thread skills/dotnet-nuget-update/scripts/Apply-PackageUpdates.ps1
Eval Worker and others added 13 commits September 8, 2026 00:17
The Get-TargetFrameworks.ps1 static scanner resolves property declarations through Directory.Build.props/targets and recursive imports, but it does not evaluate MSBuild conditions or SDK-supplied properties. The documentation now clarifies this scope so users understand when to verify results with project-specific MSBuild evaluation.
Restructured the property-map walker to handle import chains and property-token resolution recursively. The scanner now traverses Directory.Build.props and .targets files in the correct order, resolves property references within each scope, and preserves unresolved tokens for later discovery. This fixes edge cases where projects in different directories share property names or where scoped .props files define properties that should not leak across project boundaries.
Added eval case #8 to verify that the framework scanner correctly handles projects in different directories with their own Directory.Build.props scope. The test fixture includes three projects with scoped properties to ensure the scanner does not borrow framework versions from sibling projects or resolve properties from unimported files. This eval validates the scoped-property fix in Get-TargetFrameworks.
Added test-target-frameworks.ps1 as a standalone validation harness for Get-TargetFrameworks.ps1. The script builds complex fixture hierarchies with nested Directory.Build.props, property tokens, and conditional framework declarations, then verifies the scanner correctly resolves each project's target frameworks. This enables rapid validation during development without requiring full skill evals.
The commit grouping guidance in SKILL.md is now sufficiently detailed to warrant a dedicated reference document. This extracts the 'Repo-aligned grouping example' and 'Commit body guidance' sections into references/grouping-examples.md for clarity and easier maintenance, while improving the overall skill structure without changing its core workflow or validation logic.
Adds three new eval cases to git-visual-commits testing: untracked file discovery (eval 26), path handling with spaces and untracked directories (eval 27), and explicit scope narrowing excluding in-scope changes (eval 28). These tests validate the skill handles file inventory, mixed staged/unstaged/untracked changes, and scope boundaries correctly.
Finalize 0.10.0 release notes with the release date and add description of git-visual-commits refactoring and enhancements that complete this release.
Update repository agent guidelines (AGENTS.md) and installation documentation (README.md) to explicitly specify concurrent suite dispatch for agent-driven validation, bounded concurrency of at least two workers, per-suite exit codes, and the prohibition on sequential aggregate runs. Clarify that agents must use the suite matrix from GitHub Actions workflows as the source of truth, include user-instruction overrides for testing suspension, and report limitations instead of falling back to sequential execution.
Update test assertions in validate-skill-templates.ps1 to match the refined quality-gate guidance in git-visual-commits SKILL.md. The assertion now verifies that agents explicitly refresh the Step 1 inventory and explain each path's rationale, audience, and lifecycle before classification rather than only checking git status.
$skill = Get-FileText -RepoRoot $repoRoot -RelativePath 'skills/git-visual-commits/SKILL.md' -GitRef $Ref
$evals = Get-FileText -RepoRoot $repoRoot -RelativePath 'skills/git-visual-commits/evals/evals.json' -GitRef $Ref
$commitLanguage = Get-FileText -RepoRoot $repoRoot -RelativePath 'skills/git-visual-commits/references/commit-language.md' -GitRef $Ref
$groupingExamples = Get-FileText -RepoRoot $repoRoot -RelativePath 'skills/git-visual-commits/references/grouping-examples.md' -GitRef $Ref

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Historical Ref Validation Fails

When -Ref selects a committed tree from before grouping-examples.md was introduced, this unconditional lookup reports the reference file as missing. The Git visual commits validation block then fails instead of validating that historical tree.

Knowledge Base Used: Skill template validation automation

Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/validate-skill-templates.ps1
Line: 2752

Comment:
**Historical Ref Validation Fails**

When `-Ref` selects a committed tree from before `grouping-examples.md` was introduced, this unconditional lookup reports the reference file as missing. The Git visual commits validation block then fails instead of validating that historical tree.

**Knowledge Base Used:** [Skill template validation automation](https://app.greptile.com/geekle/-/custom-context/knowledge-base/codebeltnet/agentic/-/docs/skill-template-validation-automation.md)

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Codex

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