Commits
100
Nodes
30
dir edges
107
co_change edges
168
Hub shadows
5
Universal hubs
6
Cross-layer hub correlation
directory_coupling ↔ co_change
r = 0.8090
strong positive hub persistence — same items tend to be structurally important in both layers
LAW CONFIRMED
Hub shadows (5)
Files with a large gap between directory rank (declared) and co-change rank (behavioral).
src/scene/text/canvas/CanvasTextMetrics.ts
4 commits
dir rank
#17
→
co_change rank
#5
gap
12
src/app/Application.ts
4 commits
dir rank
#23
→
co_change rank
#30
gap
7
src/scene/text-bitmap/__tests__/BitmapText.test.ts
3 commits
dir rank
#28
→
co_change rank
#21
gap
7
src/scene/text/canvas/utils/getCanvasFillStyle.ts
3 commits
dir rank
#19
→
co_change rank
#24
gap
5
src/rendering/index.ts
5 commits
dir rank
#21
→
co_change rank
#25
gap
4
Universal hubs (6)
High in both layers — architectural backbone.
html-text-bounds-tagged.scene.ts
tests/visual/scenes/text-html/html-text-bounds-tagged.scene.ts
html-text-bounds.scene.ts
tests/visual/scenes/text-html/html-text-bounds.scene.ts
html-text-alignment-tagged.scene.ts
tests/visual/scenes/text-html/html-text-alignment-tagged.scene.ts
html-text-alignment.scene.ts
tests/visual/scenes/text-html/html-text-alignment.scene.ts
html-text-whitespace-tagged.scene.ts
tests/visual/scenes/text-html/html-text-whitespace-tagged.scene.ts
html-text-whitespace.scene.ts
tests/visual/scenes/text-html/html-text-whitespace.scene.ts
Hub ranking (30 nodes)
| # | File | hub score | commits | archetype |
|---|---|---|---|---|
| 1 | html-text-alignment-tagged.scene.ts | 1.1724 | 4 | universal_hub |
| 2 | html-text-alignment.scene.ts | 1.1724 | 4 | universal_hub |
| 3 | html-text-whitespace-tagged.scene.ts | 1.1724 | 4 | universal_hub |
| 4 | html-text-whitespace.scene.ts | 1.1724 | 4 | universal_hub |
| 5 | html-text-bounds-tagged.scene.ts | 0.9655 | 3 | universal_hub |
| 6 | html-text-bounds.scene.ts | 0.9655 | 3 | universal_hub |
| 7 | html-text-broken.scene.ts | 0.9655 | 3 | |
| 8 | html-text-drop-shadow-tagged.scene.ts | 0.9655 | 3 | |
| 9 | html-text-drop-shadow-word-wrap-tagged.scene.ts | 0.9655 | 3 | |
| 10 | html-text-drop-shadow-word-wrap.scene.ts | 0.9655 | 3 | |
| 11 | html-text-drop-shadow.scene.ts | 0.9655 | 3 | |
| 12 | html-text-dynamic-destroy.scene.ts | 0.9655 | 3 | |
| 13 | html-text-dynamic-update.scene.ts | 0.9655 | 3 | |
| 14 | html-text-dynamic.scene.ts | 0.9655 | 3 | |
| 15 | html-text-family-multi.scene.ts | 0.9655 | 3 | |
| 16 | CanvasTextMetrics.ts | 0.5172 | 4 | hub_shadow |
| 17 | CanvasTextGenerator.ts | 0.4138 | 6 | |
| 18 | measureTaggedText.ts | 0.4138 | 4 | |
| 19 | canvasTextSplit.ts | 0.3103 | 6 | |
| 20 | getBitmapTextLayout.ts | 0.3103 | 4 | |
| 21 | BitmapText.test.ts | 0.3103 | 3 | hub_shadow |
| 22 | index.ts | 0.2759 | 4 | |
| 23 | getCanvasFillStyle.ts | 0.2759 | 3 | hub_shadow |
| 24 | RenderTargetSystem.ts | 0.2414 | 4 | |
| 25 | index.ts | 0.2069 | 5 | hub_shadow |
| 26 | GCSystem.ts | 0.2069 | 3 | |
| 27 | GlTextureSystem.ts | 0.0690 | 4 | |
| 28 | GCSystem.test.ts | 0.0690 | 3 | |
| 29 | GraphicsContext.ts | 0.0345 | 4 | |
| 30 | Application.ts | 0.0000 | 4 | hub_shadow |