Skip to content

Comments

Add configuration for classdiagram extraction#26

Merged
HandyS11 merged 5 commits intodevelopfrom
004-config-class-members
Feb 16, 2026
Merged

Add configuration for classdiagram extraction#26
HandyS11 merged 5 commits intodevelopfrom
004-config-class-members

Conversation

@HandyS11
Copy link
Owner

This pull request introduces the feature "Configure Class Member Visibility" (feature 004), enabling users to control whether class properties and/or functions are displayed in generated class diagrams. The implementation is fully specified and planned, with supporting documentation, data model updates, and contract/schema changes. Additionally, the build and packaging workflow is improved for automated versioning, and some minor project file cleanups are included.

The most important changes are:

Feature: Configurable Class Member Visibility

  • Added a complete feature specification, research, implementation plan, quickstart guide, requirements checklist, and data model for "Configure Class Member Visibility" (specs/004-config-class-members/). This feature allows users to toggle the visibility of properties and/or functions in class diagrams, with defaults set to include both. The feature ensures that hiding members does not affect relationship discovery. [1] [2] [3] [4] [5] [6]
  • Updated the MCP tool contract (GetClassDiagram) to accept includeProperties and includeFunctions boolean parameters, defaulting to true.

Documentation and Guidelines

  • Added links to architecture, contributing, and security documentation in README.md.
  • Updated development guidelines and recent changes in .github/agents/copilot-instructions.md to reflect the addition of feature 004. [1] [2]

Build & Packaging Automation

  • Enhanced the GitHub Actions workflow (publish.yml) to automatically extract the version from the tag and update both Directory.Build.props and server.json with the correct version before building and packaging. This removes the need to pass the version as a parameter during build/pack steps. [1] [2]

Project File Cleanups

  • Removed the <PackageIcon> property and the related icon.png packaging logic from Directory.Build.props. [1] [2]

Copilot AI review requested due to automatic review settings February 16, 2026 15:01
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds configurable inclusion of class members (properties/fields and methods) to the class diagram pipeline (library → CLI → MCP), with accompanying specs and expanded test coverage, plus packaging/versioning workflow adjustments.

Changes:

  • Add includeProperties / includeFunctions flags through analysis options and type extraction, and expose them via CLI + MCP.
  • Add unit/integration/contract tests to validate filtering behavior and backward-compatible defaults.
  • Improve packaging metadata (icons) and automate version propagation in the publish workflow.

Reviewed changes

Copilot reviewed 28 out of 28 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tests/ProjGraph.Tests.Unit.ClassDiagram/TypeAnalyzerTests.cs Adds unit tests for member-visibility filtering behavior.
tests/ProjGraph.Tests.Unit.ClassDiagram/AnalyzeFileUseCaseTests.cs Updates expectations/calls for new analysis options.
tests/ProjGraph.Tests.Integration.Mcp/McpClassDiagramTests.cs Adds MCP integration tests for new parameters and default behavior.
tests/ProjGraph.Tests.Integration.Cli/ClassDiagramCommandTests.cs Adds CLI integration tests for new flags.
tests/ProjGraph.Tests.Contract/McpClassDiagramTests.cs Extends contract test to require new MCP parameters/defaults.
src/ProjGraph.Mcp/ProjGraph.Mcp.csproj Packs icon into MCP NuGet/tool package.
src/ProjGraph.Mcp/Program.cs Extends GetClassDiagram tool signature and forwards flags to analysis service.
src/ProjGraph.Mcp/.mcp/server.json Adds icon metadata for MCP server manifest.
src/ProjGraph.Lib.ClassDiagram/Infrastructure/TypeProcessor.cs Passes member-visibility flags into type analysis.
src/ProjGraph.Lib.ClassDiagram/Infrastructure/TypeAnalyzer.cs Implements member filtering based on new flags (with enum handling).
src/ProjGraph.Lib.ClassDiagram/Application/UseCases/AnalyzeFileUseCase.cs Threads new flags into AnalysisOptions and changes inheritance default.
src/ProjGraph.Lib.ClassDiagram/Application/IClassAnalysisService.cs Extends analysis service contract with new flags.
src/ProjGraph.Lib.ClassDiagram/Application/ClassAnalysisService.cs Forwards new flags to the use case.
src/ProjGraph.Lib.ClassDiagram/Application/AnalysisOptions.cs Adds IncludeProperties / IncludeFunctions to options model.
src/ProjGraph.Cli/ProjGraph.Cli.csproj Packs icon into CLI NuGet/tool package; removes redundant global properties.
src/ProjGraph.Cli/Commands/ClassDiagramCommand.cs Adds CLI options and forwards flags to analysis service.
specs/004-config-class-members/tasks.md Adds implementation task checklist for feature 004.
specs/004-config-class-members/spec.md Adds feature specification for configurable member visibility.
specs/004-config-class-members/research.md Adds research notes and design decisions.
specs/004-config-class-members/quickstart.md Adds quickstart usage examples (MCP).
specs/004-config-class-members/plan.md Adds implementation plan and project structure references.
specs/004-config-class-members/data-model.md Documents data model changes for options/member categories.
specs/004-config-class-members/contracts/mcp-tool.json Adds MCP schema/contract sample for new parameters.
specs/004-config-class-members/checklists/requirements.md Adds spec quality/requirements checklist.
README.md Adds links to architecture/contributing/security docs.
Directory.Build.props Removes global icon packaging; retains global build settings.
.github/workflows/publish.yml Automates version injection into props + server.json before build/pack.
.github/agents/copilot-instructions.md Updates agent guidance with feature 004 entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@HandyS11 HandyS11 merged commit 54404cd into develop Feb 16, 2026
5 checks passed
@HandyS11 HandyS11 deleted the 004-config-class-members branch February 16, 2026 15:47
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.

1 participant