V0.6.0/dotnet change impact#21
Conversation
Add the dotnet-change-impact skill for classifying .NET library changes and recommending version bumps (Major/Minor/Patch) according to Microsoft's official compatibility rules. Includes SKILL.md, evals for benchmarking, and compatibility-categories reference.
Update README.md to list dotnet-change-impact in the Available Skills section with install command and detailed description. Add a new 'Why dotnet-change-impact?' section explaining the skill's purpose, grounding in Microsoft's compatibility model, and key capabilities.
Greptile SummaryThis PR introduces the
Confidence Score: 5/5Safe to merge — adds a new skill definition, reference docs, and evals with no executable code changes and no mutations to existing skill logic. All changes are new files (SKILL.md, compatibility-categories.md, evals.json, hero image) or additive updates to README and CHANGELOG. The CHANGELOG also corrects a pre-existing link bug. No existing skills or runtime paths are modified. Eval 9 in evals/evals.json tests the live git default-resolution path without a fixture to seed a meaningful workspace — worth a follow-up to make that eval deterministic. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A([User invokes dotnet-change-impact]) --> B{Input mode?}
B -->|Explicit change details| C[Classify provided changes]
B -->|Explicit compare range| D[Inspect range & classify]
B -->|No input| E[Default Resolution]
E --> E1[git rev-parse HEAD → current branch]
E1 --> E2[Resolve upstream remote]
E2 --> E3{Default branch resolvable?}
E3 -->|Yes| E4[git log + git diff vs base]
E3 -->|No — fallback order| E5[origin/HEAD → upstream/HEAD → origin/main → origin/master → ...]
E5 --> E4
E4 --> C
C --> F[Internal analysis: public contract, observable behavior, source/binary/design-time compat, backwards compat, highest bump]
F --> G{Highest required bump}
G -->|Breaking / plausibly breaking| H[Major]
G -->|Additive, backward-compatible| I[Minor]
G -->|No new surface, preserves contract| J[Patch]
H & I & J --> K[Structured output: Recommendation → Key changes → Compatibility impact → Reasoning → Deterministic decision]
Prompt To Fix All With AIFix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
skills/dotnet-change-impact/evals/evals.json:639-652
**Eval 9 may yield indeterminate results without a seeded git workspace**
Eval 9 tests the "Default Resolution Behavior" path — it expects the skill to run `git` commands, detect the current branch, resolve a base, and classify the diff. However, no `files` fixture is provided, so the eval runner creates a plain temp workspace. If that workspace starts on `main` with no commits ahead of the base branch, the skill will correctly report "nothing to classify" rather than produce a `Major`/`Minor`/`Patch` recommendation — but the expectation "Collects both branch commits and net diff before classifying compatibility impact" cannot be satisfied. Adding either a `files` entry pointing to a pre-baked `.git` bundle or a workspace-setup note would make this eval deterministic and runnable in CI.
Reviews (3): Last reviewed commit: "💬 polish dotnet-change-impact docs and ..." | Re-trigger Greptile |
Add comprehensive default resolution behavior when no explicit change details or compare range are provided. The skill now inspects the current Git branch and automatically compares it against the upstream default branch, collecting commits and net diff. Includes detailed guidance on input modes, git detection logic, fallback chain for branch resolution, and read-only commands. Updated evals to cover branch-detection scenarios and current-branch classification.
Refine the skill table description and Why section to emphasize current-branch default behavior. Document that the skill resolves the current branch against the upstream/default base branch when no explicit input is provided, and clarify that explicit change descriptions, API diffs, and compare ranges still override that default.
Reorganize and streamline SKILL.md for clarity, consolidating the input handling sections and refining the decision flow. Simplify evals.json test cases, reducing redundancy and improving focus. Maintain all core compatibility rules and guidance while improving readability.
Update the skill table entry in README to reflect the reorganized instructions and simplified evals. Clarify the current-branch default behavior and ensure consistency with the refined SKILL.md.
Improve SKILL.md readability by removing artificial line breaks, add hero image reference, include assets/hero.jpg, and update CHANGELOG to reflect these refinements.
This pull request introduces a new skill,
dotnet-change-impact, to the project and updates the documentation to describe and promote its use. The new skill helps users determine the correct version bump (Major, Minor, or Patch) for .NET libraries and NuGet packages, grounded in Microsoft's official compatibility rules. The documentation is updated to explain the motivation, usage, and decision policy behind this skill, ensuring that teams can avoid both accidental breaking changes and unnecessary major version bumps.Addition of the
dotnet-change-impactskill:dotnet-change-impactinskills/dotnet-change-impact/SKILL.md, detailing its purpose, output modes, internal analysis process, version bump rules, compatibility categories, and output format.Documentation updates in
README.md:Skill listing and installation:
dotnet-change-impactto the skill install commands and the documented skills table, including a detailed description of its functionality and decision logic. [1] [2] [3]Explanation and motivation:
These changes help users understand, install, and apply the new skill to their .NET projects, promoting safer and more accurate release management.