|
1 | 1 | { |
2 | 2 | "metadata": { |
3 | | - "generated_at": "2026-06-11T16:41:16.710439+00:00", |
4 | | - "commit_hash": "ba5d7787eaecfa38964dd4663606927d98e501ba", |
| 3 | + "generated_at": "2026-06-12T12:22:29.920827+00:00", |
| 4 | + "commit_hash": "20bfd68682a5f048e8120701230c98539acff2ca", |
5 | 5 | "repo_name": "CodeBoarding-action", |
6 | 6 | "depth_level": 1, |
7 | 7 | "file_coverage_summary": { |
8 | | - "total_files": 15, |
9 | | - "analyzed": 3, |
10 | | - "not_analyzed": 12, |
| 8 | + "total_files": 17, |
| 9 | + "analyzed": 4, |
| 10 | + "not_analyzed": 13, |
11 | 11 | "not_analyzed_by_reason": { |
12 | 12 | "other": 9, |
13 | | - "codeboardingignore": 3 |
| 13 | + "codeboardingignore": 4 |
14 | 14 | } |
15 | 15 | } |
16 | 16 | }, |
17 | | - "description": "The CodeBoarding-action architecture is a CI/CD pipeline that automates architectural observability by comparing codebase versions, generating visual Mermaid.js diffs, and providing actionable IDE deep-links within GitHub Pull Requests.", |
| 17 | + "description": "The CodeBoarding-action project implements a pipeline that orchestrates static analysis of code branches, performs structural diffing to generate visual Mermaid.js diagrams, and integrates these insights into GitHub Pull Requests via interactive deep links and editor-specific metadata.", |
18 | 18 | "files": { |
19 | 19 | "scripts/cb_engine.py": { |
20 | 20 | "method_keys": [ |
|
30 | 30 | "scripts/cb_engine.py|scripts.cb_engine.main" |
31 | 31 | ] |
32 | 32 | }, |
| 33 | + "scripts/build_component_files.py": { |
| 34 | + "method_keys": [ |
| 35 | + "scripts/build_component_files.py|scripts.build_component_files._walk", |
| 36 | + "scripts/build_component_files.py|scripts.build_component_files._subtree_files", |
| 37 | + "scripts/build_component_files.py|scripts.build_component_files._subtree_methods", |
| 38 | + "scripts/build_component_files.py|scripts.build_component_files._changed_files_for", |
| 39 | + "scripts/build_component_files.py|scripts.build_component_files._block", |
| 40 | + "scripts/build_component_files.py|scripts.build_component_files.render_component_files", |
| 41 | + "scripts/build_component_files.py|scripts.build_component_files.main" |
| 42 | + ] |
| 43 | + }, |
33 | 44 | "scripts/diff_to_mermaid.py": { |
34 | 45 | "method_keys": [ |
35 | 46 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid.load_analysis", |
|
50 | 61 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._display_status", |
51 | 62 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._Scope", |
52 | 63 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._Scope.__init__", |
53 | | - "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._Scope.resolve", |
54 | 64 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._filter_changed", |
55 | 65 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._filter_changed.touches", |
56 | 66 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._init_directive", |
|
66 | 76 | "scripts/build_cta.py": { |
67 | 77 | "method_keys": [ |
68 | 78 | "scripts/build_cta.py|scripts.build_cta.detect_editors", |
| 79 | + "scripts/build_cta.py|scripts.build_cta.build_webview_link", |
69 | 80 | "scripts/build_cta.py|scripts.build_cta.build_cta", |
70 | 81 | "scripts/build_cta.py|scripts.build_cta.build_cta.link", |
71 | 82 | "scripts/build_cta.py|scripts.build_cta.main" |
|
143 | 154 | "end_line": 257, |
144 | 155 | "type": "FUNCTION" |
145 | 156 | }, |
| 157 | + "scripts/build_component_files.py|scripts.build_component_files._walk": { |
| 158 | + "file_path": "scripts/build_component_files.py", |
| 159 | + "qualified_name": "scripts.build_component_files._walk", |
| 160 | + "start_line": 56, |
| 161 | + "end_line": 62, |
| 162 | + "type": "FUNCTION" |
| 163 | + }, |
| 164 | + "scripts/build_component_files.py|scripts.build_component_files._subtree_files": { |
| 165 | + "file_path": "scripts/build_component_files.py", |
| 166 | + "qualified_name": "scripts.build_component_files._subtree_files", |
| 167 | + "start_line": 65, |
| 168 | + "end_line": 74, |
| 169 | + "type": "FUNCTION" |
| 170 | + }, |
| 171 | + "scripts/build_component_files.py|scripts.build_component_files._subtree_methods": { |
| 172 | + "file_path": "scripts/build_component_files.py", |
| 173 | + "qualified_name": "scripts.build_component_files._subtree_methods", |
| 174 | + "start_line": 77, |
| 175 | + "end_line": 85, |
| 176 | + "type": "FUNCTION" |
| 177 | + }, |
| 178 | + "scripts/build_component_files.py|scripts.build_component_files._changed_files_for": { |
| 179 | + "file_path": "scripts/build_component_files.py", |
| 180 | + "qualified_name": "scripts.build_component_files._changed_files_for", |
| 181 | + "start_line": 88, |
| 182 | + "end_line": 101, |
| 183 | + "type": "FUNCTION" |
| 184 | + }, |
| 185 | + "scripts/build_component_files.py|scripts.build_component_files._block": { |
| 186 | + "file_path": "scripts/build_component_files.py", |
| 187 | + "qualified_name": "scripts.build_component_files._block", |
| 188 | + "start_line": 104, |
| 189 | + "end_line": 121, |
| 190 | + "type": "FUNCTION" |
| 191 | + }, |
| 192 | + "scripts/build_component_files.py|scripts.build_component_files.render_component_files": { |
| 193 | + "file_path": "scripts/build_component_files.py", |
| 194 | + "qualified_name": "scripts.build_component_files.render_component_files", |
| 195 | + "start_line": 124, |
| 196 | + "end_line": 175, |
| 197 | + "type": "FUNCTION" |
| 198 | + }, |
| 199 | + "scripts/build_component_files.py|scripts.build_component_files.main": { |
| 200 | + "file_path": "scripts/build_component_files.py", |
| 201 | + "qualified_name": "scripts.build_component_files.main", |
| 202 | + "start_line": 178, |
| 203 | + "end_line": 213, |
| 204 | + "type": "FUNCTION" |
| 205 | + }, |
146 | 206 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid.load_analysis": { |
147 | 207 | "file_path": "scripts/diff_to_mermaid.py", |
148 | 208 | "qualified_name": "scripts.diff_to_mermaid.load_analysis", |
|
269 | 329 | "end_line": 298, |
270 | 330 | "type": "METHOD" |
271 | 331 | }, |
272 | | - "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._Scope.resolve": { |
273 | | - "file_path": "scripts/diff_to_mermaid.py", |
274 | | - "qualified_name": "scripts.diff_to_mermaid._Scope.resolve", |
275 | | - "start_line": 300, |
276 | | - "end_line": 309, |
277 | | - "type": "METHOD" |
278 | | - }, |
279 | 332 | "scripts/diff_to_mermaid.py|scripts.diff_to_mermaid._filter_changed": { |
280 | 333 | "file_path": "scripts/diff_to_mermaid.py", |
281 | 334 | "qualified_name": "scripts.diff_to_mermaid._filter_changed", |
|
349 | 402 | "scripts/build_cta.py|scripts.build_cta.detect_editors": { |
350 | 403 | "file_path": "scripts/build_cta.py", |
351 | 404 | "qualified_name": "scripts.build_cta.detect_editors", |
352 | | - "start_line": 35, |
353 | | - "end_line": 47, |
| 405 | + "start_line": 36, |
| 406 | + "end_line": 48, |
| 407 | + "type": "FUNCTION" |
| 408 | + }, |
| 409 | + "scripts/build_cta.py|scripts.build_cta.build_webview_link": { |
| 410 | + "file_path": "scripts/build_cta.py", |
| 411 | + "qualified_name": "scripts.build_cta.build_webview_link", |
| 412 | + "start_line": 62, |
| 413 | + "end_line": 77, |
354 | 414 | "type": "FUNCTION" |
355 | 415 | }, |
356 | 416 | "scripts/build_cta.py|scripts.build_cta.build_cta": { |
357 | 417 | "file_path": "scripts/build_cta.py", |
358 | 418 | "qualified_name": "scripts.build_cta.build_cta", |
359 | | - "start_line": 61, |
360 | | - "end_line": 96, |
| 419 | + "start_line": 80, |
| 420 | + "end_line": 137, |
361 | 421 | "type": "FUNCTION" |
362 | 422 | }, |
363 | 423 | "scripts/build_cta.py|scripts.build_cta.build_cta.link": { |
364 | 424 | "file_path": "scripts/build_cta.py", |
365 | 425 | "qualified_name": "scripts.build_cta.build_cta.link", |
366 | | - "start_line": 79, |
367 | | - "end_line": 80, |
| 426 | + "start_line": 120, |
| 427 | + "end_line": 121, |
368 | 428 | "type": "FUNCTION" |
369 | 429 | }, |
370 | 430 | "scripts/build_cta.py|scripts.build_cta.main": { |
371 | 431 | "file_path": "scripts/build_cta.py", |
372 | 432 | "qualified_name": "scripts.build_cta.main", |
373 | | - "start_line": 99, |
374 | | - "end_line": 114, |
| 433 | + "start_line": 140, |
| 434 | + "end_line": 176, |
375 | 435 | "type": "FUNCTION" |
376 | 436 | } |
377 | 437 | }, |
378 | 438 | "components": [ |
379 | 439 | { |
380 | 440 | "name": "Analysis Orchestrator", |
381 | | - "description": "Manages the execution lifecycle of the GitHub Action, including environment setup, triggering analysis, and data validation.", |
| 441 | + "description": "The central controller that manages the GitHub Action lifecycle, coordinating environment setup and triggering static analysis for base and head branches.", |
382 | 442 | "key_entities": [ |
383 | 443 | { |
384 | 444 | "qualified_name": "scripts.cb_engine.main", |
|
399 | 459 | "reference_end_line": 153 |
400 | 460 | }, |
401 | 461 | { |
402 | | - "qualified_name": "scripts.cb_engine.validate_base_analysis", |
| 462 | + "qualified_name": "scripts.cb_engine.run_health", |
403 | 463 | "reference_file": "scripts/cb_engine.py", |
404 | | - "reference_start_line": 45, |
405 | | - "reference_end_line": 76 |
| 464 | + "reference_start_line": 183, |
| 465 | + "reference_end_line": 212 |
406 | 466 | } |
407 | 467 | ], |
408 | 468 | "source_cluster_ids": [ |
|
429 | 489 | "can_expand": true |
430 | 490 | }, |
431 | 491 | { |
432 | | - "name": "Visual Diff Generator", |
433 | | - "description": "The core logic engine that compares structural metadata between codebase versions and renders differences into Mermaid.js graph syntax.", |
| 492 | + "name": "Visual Diff Engine", |
| 493 | + "description": "Responsible for calculating differences between base and head states, generating Mermaid.js visualizations, and mapping code-level changes to architectural components. This cluster (scripts.build_component_files.py) handles subtree walking, identifying changed files, and mapping methods to components via _subtree_methods and render_component_files. It interacts with the Analysis Orchestrator and Engagement Layer by providing the structured diff data required for visualization.", |
434 | 494 | "key_entities": [ |
435 | | - { |
436 | | - "qualified_name": "scripts.diff_to_mermaid.main", |
437 | | - "reference_file": "scripts/diff_to_mermaid.py", |
438 | | - "reference_start_line": 527, |
439 | | - "reference_end_line": 568 |
440 | | - }, |
441 | 495 | { |
442 | 496 | "qualified_name": "scripts.diff_to_mermaid.build_diff", |
443 | 497 | "reference_file": "scripts/diff_to_mermaid.py", |
|
455 | 509 | "reference_file": "scripts/diff_to_mermaid.py", |
456 | 510 | "reference_start_line": 162, |
457 | 511 | "reference_end_line": 207 |
| 512 | + }, |
| 513 | + { |
| 514 | + "qualified_name": "scripts.diff_to_mermaid.load_analysis", |
| 515 | + "reference_file": "scripts/diff_to_mermaid.py", |
| 516 | + "reference_start_line": 50, |
| 517 | + "reference_end_line": 54 |
458 | 518 | } |
459 | 519 | ], |
460 | 520 | "source_cluster_ids": [ |
461 | 521 | 2, |
462 | 522 | 3, |
463 | 523 | 4, |
464 | | - 5 |
| 524 | + 5, |
| 525 | + 7 |
465 | 526 | ], |
466 | 527 | "file_methods": [ |
| 528 | + { |
| 529 | + "file_path": "scripts/build_component_files.py", |
| 530 | + "methods": [ |
| 531 | + "scripts.build_component_files._walk", |
| 532 | + "scripts.build_component_files._subtree_files", |
| 533 | + "scripts.build_component_files._subtree_methods", |
| 534 | + "scripts.build_component_files._changed_files_for", |
| 535 | + "scripts.build_component_files._block", |
| 536 | + "scripts.build_component_files.render_component_files", |
| 537 | + "scripts.build_component_files.main" |
| 538 | + ] |
| 539 | + }, |
467 | 540 | { |
468 | 541 | "file_path": "scripts/diff_to_mermaid.py", |
469 | 542 | "methods": [ |
|
485 | 558 | "scripts.diff_to_mermaid._display_status", |
486 | 559 | "scripts.diff_to_mermaid._Scope", |
487 | 560 | "scripts.diff_to_mermaid._Scope.__init__", |
488 | | - "scripts.diff_to_mermaid._Scope.resolve", |
489 | 561 | "scripts.diff_to_mermaid._filter_changed", |
490 | 562 | "scripts.diff_to_mermaid._filter_changed.touches", |
491 | 563 | "scripts.diff_to_mermaid._init_directive", |
|
503 | 575 | "can_expand": true |
504 | 576 | }, |
505 | 577 | { |
506 | | - "name": "UX & Integration Helper", |
507 | | - "description": "Manages the generation of user-facing outputs, including GitHub comments, status checks, and interactive links (CTAs) for external viewing. This component integrates the new 'build_cta.py' logic to generate interactive webview links and editor-specific deep links, expanding its role from simple reporting to providing actionable CI/CD report navigation. It receives processed data from the Visual Diff Generator to finalize the GitHub Action output.", |
| 578 | + "name": "Engagement & Integration Layer", |
| 579 | + "description": "Generates user-facing metadata, detects developer environments, and creates CTA links to bridge GitHub PR comments with the interactive CodeBoarding platform.", |
508 | 580 | "key_entities": [ |
509 | 581 | { |
510 | | - "qualified_name": "scripts.build_cta.main", |
| 582 | + "qualified_name": "scripts.build_cta.build_cta", |
511 | 583 | "reference_file": "scripts/build_cta.py", |
512 | | - "reference_start_line": 99, |
513 | | - "reference_end_line": 114 |
| 584 | + "reference_start_line": 80, |
| 585 | + "reference_end_line": 137 |
514 | 586 | }, |
515 | 587 | { |
516 | | - "qualified_name": "scripts.build_cta.build_cta", |
| 588 | + "qualified_name": "scripts.build_cta.build_webview_link", |
517 | 589 | "reference_file": "scripts/build_cta.py", |
518 | | - "reference_start_line": 61, |
519 | | - "reference_end_line": 96 |
| 590 | + "reference_start_line": 62, |
| 591 | + "reference_end_line": 77 |
520 | 592 | }, |
521 | 593 | { |
522 | 594 | "qualified_name": "scripts.build_cta.detect_editors", |
523 | 595 | "reference_file": "scripts/build_cta.py", |
524 | | - "reference_start_line": 35, |
525 | | - "reference_end_line": 47 |
| 596 | + "reference_start_line": 36, |
| 597 | + "reference_end_line": 48 |
526 | 598 | } |
527 | 599 | ], |
528 | 600 | "source_cluster_ids": [ |
|
533 | 605 | "file_path": "scripts/build_cta.py", |
534 | 606 | "methods": [ |
535 | 607 | "scripts.build_cta.detect_editors", |
| 608 | + "scripts.build_cta.build_webview_link", |
536 | 609 | "scripts.build_cta.build_cta", |
537 | 610 | "scripts.build_cta.build_cta.link", |
538 | 611 | "scripts.build_cta.main" |
|
545 | 618 | ], |
546 | 619 | "components_relations": [ |
547 | 620 | { |
548 | | - "relation": "Passes validated analysis artifacts to initiate structural comparison", |
| 621 | + "relation": "triggers state comparison and visualization", |
549 | 622 | "src_name": "Analysis Orchestrator", |
550 | | - "dst_name": "Visual Diff Generator", |
| 623 | + "dst_name": "Visual Diff Engine", |
551 | 624 | "src_id": "1", |
552 | 625 | "dst_id": "2", |
553 | 626 | "edge_count": 0, |
554 | 627 | "is_static": false |
555 | 628 | }, |
556 | 629 | { |
557 | | - "relation": "Provides context of changed files and components for deep-link generation", |
558 | | - "src_name": "Visual Diff Generator", |
559 | | - "dst_name": "UX & Integration Helper", |
560 | | - "src_id": "2", |
| 630 | + "relation": "provides execution context for CTA generation", |
| 631 | + "src_name": "Analysis Orchestrator", |
| 632 | + "dst_name": "Engagement & Integration Layer", |
| 633 | + "src_id": "1", |
561 | 634 | "dst_id": "3", |
562 | 635 | "edge_count": 0, |
563 | 636 | "is_static": false |
564 | 637 | }, |
565 | 638 | { |
566 | | - "relation": "Returns formatted markdown snippets and CTA links for final output", |
567 | | - "src_name": "UX & Integration Helper", |
568 | | - "dst_name": "Analysis Orchestrator", |
569 | | - "src_id": "3", |
570 | | - "dst_id": "1", |
| 639 | + "relation": "provides structured diff data for reporting", |
| 640 | + "src_name": "Visual Diff Engine", |
| 641 | + "dst_name": "Engagement & Integration Layer", |
| 642 | + "src_id": "2", |
| 643 | + "dst_id": "3", |
571 | 644 | "edge_count": 0, |
572 | 645 | "is_static": false |
573 | 646 | } |
|
0 commit comments