Skip to content

Introduce internal-dependencies domain#552

Merged
JohT merged 6 commits intomainfrom
feature/internal-dependencies-domain
Apr 8, 2026
Merged

Introduce internal-dependencies domain#552
JohT merged 6 commits intomainfrom
feature/internal-dependencies-domain

Conversation

@JohT
Copy link
Copy Markdown
Owner

@JohT JohT commented Apr 2, 2026

@JohT JohT self-assigned this Apr 2, 2026
@JohT JohT requested a review from Copilot April 2, 2026 06:44
Copy link
Copy Markdown
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

This PR introduces a new internal-dependencies domain under domains/ to generate internal dependency analysis outputs (CSV, SVG charts, GraphViz visualizations, and a Markdown summary report) from Neo4j/GDS data, following the repository’s domain “vertical slice” pattern.

Changes:

  • Adds domain entry points for CSV export, Python chart generation, GraphViz visualizations, and Markdown report assembly.
  • Adds/copies Cypher query sets for internal dependencies, cyclic dependencies, path finding, and topological sort, plus exploration queries and notebooks.
  • Adds a Python chart generator to produce SVGs from path-finding CSV outputs and integrates them into the Markdown summary.

Reviewed changes

Copilot reviewed 60 out of 60 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
domains/internal-dependencies/README.md Documents the new domain, entry points, structure, prerequisites, and produced outputs.
domains/internal-dependencies/PREREQUISITES.md Details required upstream pipeline/enrichment steps (Neo4j, weights, projections, TypeScript enrichment, etc.).
domains/internal-dependencies/COPIED_FILES.md Tracks original→copied file mappings for later deprecation/migration work.
domains/internal-dependencies/internalDependenciesCsv.sh New CSV pipeline entry point orchestrating internal deps, cycles, path finding, and topological sort into reports/internal-dependencies/.
domains/internal-dependencies/internalDependenciesPython.sh Runs the Python SVG chart generator for path finding outputs.
domains/internal-dependencies/internalDependenciesVisualization.sh Entry-point delegator to GraphViz orchestration script.
domains/internal-dependencies/internalDependenciesMarkdown.sh Entry-point delegator to Markdown summary assembly script.
domains/internal-dependencies/pathFindingCharts.py Generates SVG charts from path finding CSVs across abstraction levels.
domains/internal-dependencies/graphs/internalDependenciesGraphs.sh Orchestrates GraphViz visualizations (build levels + longest paths) for Java artifacts, TS modules, and NPM packages.
domains/internal-dependencies/summary/internalDependenciesSummary.sh Assembles the final Markdown report by running Cypher queries + embedding includes and SVG references.
domains/internal-dependencies/summary/report.template.md Markdown report template describing interpretation and embedding query/chart/graph outputs.
domains/internal-dependencies/queries/internal-dependencies/Candidates_for_Interface_Segregation.cypher Cypher: interface segregation candidates table.
domains/internal-dependencies/queries/internal-dependencies/Get_file_distance_as_shortest_contains_path_for_dependencies.cypher Cypher: reads file-distance distribution from relationship property.
domains/internal-dependencies/queries/internal-dependencies/How_many_classes_compared_to_all_existing_in_the_same_package_are_used_by_dependent_packages_across_different_artifacts.cypher Cypher: cross-artifact class usage ratios.
domains/internal-dependencies/queries/internal-dependencies/How_many_elements_compared_to_all_existing_are_used_by_dependent_modules_for_Typescript.cypher Cypher: TS element usage ratios by dependent modules.
domains/internal-dependencies/queries/internal-dependencies/How_many_packages_compared_to_all_existing_are_used_by_dependent_artifacts.cypher Cypher: artifact package usage ratios.
domains/internal-dependencies/queries/internal-dependencies/Inter_scan_and_project_dependencies_of_Typescript_modules.cypher Cypher: exploration query for inter-scan/project module deps.
domains/internal-dependencies/queries/internal-dependencies/Java_Artifact_build_levels_for_graphviz.cypher Cypher: Java artifact edges annotated with build levels for GraphViz.
domains/internal-dependencies/queries/internal-dependencies/List_all_Java_artifacts.cypher Cypher: artifact listing with dependency counts and sizes.
domains/internal-dependencies/queries/internal-dependencies/List_all_Typescript_modules.cypher Cypher: TS module listing with dependency counts and element counts.
domains/internal-dependencies/queries/internal-dependencies/List_elements_that_are_used_by_many_different_modules_for_Typescript.cypher Cypher: widely used TS elements.
domains/internal-dependencies/queries/internal-dependencies/List_types_that_are_used_by_many_different_packages.cypher Cypher: widely used Java types.
domains/internal-dependencies/queries/internal-dependencies/NPM_Package_build_levels_for_graphviz.cypher Cypher: NPM package edges annotated with build levels for GraphViz.
domains/internal-dependencies/queries/internal-dependencies/Set_file_distance_as_shortest_contains_path_for_dependencies.cypher Cypher: computes and writes file-distance property on DEPENDS_ON relationships.
domains/internal-dependencies/queries/internal-dependencies/Typescript_Module_build_levels_for_graphviz.cypher Cypher: TS module edges annotated with build levels for GraphViz.
domains/internal-dependencies/queries/cyclic-dependencies/Cyclic_Dependencies.cypher Cypher: Java package cyclic dependency overview.
domains/internal-dependencies/queries/cyclic-dependencies/Cyclic_Dependencies_Breakdown.cypher Cypher: Java package cyclic dependency breakdown (all edges).
domains/internal-dependencies/queries/cyclic-dependencies/Cyclic_Dependencies_Breakdown_Backward_Only.cypher Cypher: Java package cyclic dependency backward edges only.
domains/internal-dependencies/queries/cyclic-dependencies/Cyclic_Dependencies_between_Artifacts_as_unwinded_List.cypher Cypher: cyclic deps between artifacts (edge list).
domains/internal-dependencies/queries/cyclic-dependencies/Cyclic_Dependencies_for_Typescript.cypher Cypher: TypeScript module cyclic dependency overview.
domains/internal-dependencies/queries/cyclic-dependencies/Cyclic_Dependencies_Breakdown_for_Typescript.cypher Cypher: TypeScript cyclic dependency breakdown (all edges).
domains/internal-dependencies/queries/cyclic-dependencies/Cyclic_Dependencies_Breakdown_Backward_Only_for_Typescript.cypher Cypher: TypeScript cyclic dependency backward edges only.
domains/internal-dependencies/queries/path-finding/Path_Finding_1_Create_Projection.cypher Cypher: example projection creation (exploration).
domains/internal-dependencies/queries/path-finding/Path_Finding_2_Estimate_Memory.cypher Cypher: example memory estimation (exploration).
domains/internal-dependencies/queries/path-finding/Path_Finding_3_Depth_First_Search_Path.cypher Cypher: example DFS path query (exploration).
domains/internal-dependencies/queries/path-finding/Path_Finding_4_Breadth_First_Search_Path.cypher Cypher: example BFS path query (exploration).
domains/internal-dependencies/queries/path-finding/Path_Finding_5_All_pairs_shortest_path_distribution_overall.cypher Cypher: APSP overall distribution.
domains/internal-dependencies/queries/path-finding/Path_Finding_5_All_pairs_shortest_path_distribution_per_project.cypher Cypher: APSP distribution per project with examples.
domains/internal-dependencies/queries/path-finding/Path_Finding_5_All_pairs_shortest_path_examples.cypher Cypher: APSP example paths (top longest shortest paths).
domains/internal-dependencies/queries/path-finding/Path_Finding_6_Longest_paths_distribution_overall.cypher Cypher: longest path overall distribution.
domains/internal-dependencies/queries/path-finding/Path_Finding_6_Longest_paths_distribution_per_project.cypher Cypher: longest path distribution per project with examples.
domains/internal-dependencies/queries/path-finding/Path_Finding_6_Longest_paths_examples.cypher Cypher: example longest paths.
domains/internal-dependencies/queries/path-finding/Path_Finding_6_Longest_paths_for_graphviz.cypher Cypher: DOT edges for isolated longest paths graph.
domains/internal-dependencies/queries/path-finding/Path_Finding_6_Longest_paths_contributors_for_graphviz.cypher Cypher: DOT edges highlighting longest-path contributors.
domains/internal-dependencies/queries/path-finding/Set_Parameters.cypher Cypher Browser :params example for packages.
domains/internal-dependencies/queries/path-finding/Set_Parameters_Typescript_Module.cypher Cypher Browser :params example for TS modules.
domains/internal-dependencies/queries/path-finding/Set_Parameters_NonDevNpmPackage.cypher Cypher Browser :params example for NPM non-dev packages.
domains/internal-dependencies/queries/topological-sort/Topological_Sort_Write.cypher Cypher: writes topological sort properties to nodes.
domains/internal-dependencies/queries/topological-sort/Topological_Sort_Query.cypher Cypher: queries topological sort properties to CSV.
domains/internal-dependencies/queries/topological-sort/Topological_Sort_List.cypher Cypher: lists topological sort results and overall levels.
domains/internal-dependencies/queries/topological-sort/Topological_Sort_Exists.cypher Cypher: checks whether topological sort properties exist.
domains/internal-dependencies/queries/topological-sort/Set_Parameters.cypher Cypher Browser :params example for topological sort.
domains/internal-dependencies/queries/exploration/Artifacts_with_duplicate_packages.cypher Exploration query used by notebooks (duplicate packages).
domains/internal-dependencies/queries/exploration/Annotated_code_elements.cypher Exploration query used by notebooks (annotation usage).
domains/internal-dependencies/explore/InternalDependenciesJava.ipynb Copied exploration notebook with validation disabled.
domains/internal-dependencies/explore/InternalDependenciesTypescript.ipynb Copied exploration notebook with validation disabled.
domains/internal-dependencies/explore/PathFindingJava.ipynb Copied exploration notebook with validation disabled.
domains/internal-dependencies/explore/PathFindingTypescript.ipynb Copied exploration notebook with validation disabled.
.github/prompts/plan-internal_dependencies_domain.prompt.md Adds the detailed planning prompt used to create this domain.
.github/prompts/plan-external_dependencies_domain.prompt.md Updates/introduces the external-dependencies planning prompt reference.

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

Comment thread domains/internal-dependencies/COPIED_FILES.md Outdated
@JohT JohT marked this pull request as ready for review April 3, 2026 19:38
@JohT JohT force-pushed the feature/internal-dependencies-domain branch 2 times, most recently from ce7ea70 to eaf0970 Compare April 6, 2026 19:04
@JohT JohT requested a review from Copilot April 6, 2026 19:05
Copy link
Copy Markdown
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

Copilot reviewed 66 out of 66 changed files in this pull request and generated 2 comments.


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

Comment thread scripts/stopNeo4j.sh Outdated
@JohT JohT force-pushed the feature/internal-dependencies-domain branch from eaf0970 to 6dcf9d2 Compare April 7, 2026 06:20
@JohT JohT force-pushed the feature/internal-dependencies-domain branch 3 times, most recently from 319788e to c89eecd Compare April 8, 2026 06:23
@JohT JohT requested a review from Copilot April 8, 2026 06:23
Copy link
Copy Markdown
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

Copilot reviewed 53 out of 83 changed files in this pull request and generated 3 comments.


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

Comment thread README.md
Comment thread README.md
Comment thread CHANGELOG.md
@JohT JohT force-pushed the feature/internal-dependencies-domain branch from c89eecd to 14558cd Compare April 8, 2026 17:41
@JohT JohT merged commit 449b523 into main Apr 8, 2026
11 checks passed
@JohT JohT deleted the feature/internal-dependencies-domain branch April 8, 2026 18:05
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