@heildamm/cli 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -30
- package/bin/controllers/analyze.js +2 -0
- package/bin/controllers/report.js +2 -0
- package/bin/services/git/history.js +2 -0
- package/bin/services/git/parser.js +2 -0
- package/bin/services/metrics/busfactor.js +2 -0
- package/bin/services/metrics/hotspots.js +2 -0
- package/bin/services/metrics/ownership.js +2 -0
- package/bin/services/model/commit.js +2 -0
- package/bin/services/model/repository.js +2 -0
- package/bin/utils/fileSystem.js +2 -0
- package/bin/utils/logger.js +2 -0
- package/package.json +14 -8
package/README.md
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
<div align="center">
|
|
3
2
|
<pre style="color: #8e61c6; background: transparent; border: none; font-weight: bold; line-height: 1.2;">
|
|
4
3
|
░▒▓▓▒░
|
|
@@ -25,6 +24,7 @@ Heildamm operates exclusively within the local `.git` directory. By applying det
|
|
|
25
24
|
---
|
|
26
25
|
|
|
27
26
|
## Table of Contents
|
|
27
|
+
|
|
28
28
|
1. [Executive Overview](#executive-overview)
|
|
29
29
|
2. [Core Principles](#core-principles)
|
|
30
30
|
3. [Conceptual Model](#conceptual-model)
|
|
@@ -39,9 +39,9 @@ Heildamm operates exclusively within the local `.git` directory. By applying det
|
|
|
39
39
|
|
|
40
40
|
Modern codebases accumulate structural complexity through continuous modification, but the contextual reasoning behind these changes is frequently lost. Traditional version control interfaces provide fragmented visibility:
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
- **`git log`:** Outputs chronological sequences devoid of systemic context.
|
|
43
|
+
- **`git blame`:** Attributes line-level authorship without accounting for temporal relevance.
|
|
44
|
+
- **Code Review Platforms:** Isolate analysis to immediate, pending changes.
|
|
45
45
|
|
|
46
46
|
**Heildamm** bridges this visibility gap. It treats the repository's history as a comprehensive dataset, allowing engineering leadership and maintainers to model, analyze, and interpret the lifecycle of the codebase holistically.
|
|
47
47
|
|
|
@@ -49,42 +49,50 @@ Modern codebases accumulate structural complexity through continuous modificatio
|
|
|
49
49
|
|
|
50
50
|
## Core Principles
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
- **Local-First & Secure:** All analytical processing is executed locally. Zero network requests, no external APIs, and no source code exfiltration, ensuring strict compliance with internal security policies.
|
|
53
|
+
- **Deterministic Execution:** System outputs are exclusively derived from reproducible algorithms applied to raw Git data. The architecture deliberately avoids non-deterministic probabilistic models or opaque machine learning layers.
|
|
54
|
+
- **Structural History:** The commit timeline is parsed not as a flat log, but as a structured sequence of architectural transformations that can be queried and grouped.
|
|
55
|
+
- **Knowledge over Authorship:** Code ownership is dynamically calculated based on active contribution and recency, discarding the static and often outdated metric of original authorship.
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
59
59
|
## Conceptual Model
|
|
60
60
|
|
|
61
61
|
### 1. Authorship and Knowledge Distribution
|
|
62
|
+
|
|
62
63
|
Heildamm calculates a **"living ownership"** matrix utilizing:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
|
|
65
|
+
- Granular line-level attribution.
|
|
66
|
+
- Temporal decay algorithms (weighting recent modifications more heavily).
|
|
67
|
+
- Aggregate contribution metrics per file and subsystem.
|
|
66
68
|
|
|
67
69
|
**Business Value:** Identifies active knowledge domain experts, highlights stale code maintained by inactive personnel, and quantifies knowledge silos.
|
|
68
70
|
|
|
69
71
|
### 2. Temporal Clustering (Evolution Arcs)
|
|
72
|
+
|
|
70
73
|
Individual commits are mathematically grouped into **"arcs"** based on:
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
|
|
75
|
+
- Chronological proximity.
|
|
76
|
+
- File intersection and cross-dependency across commits.
|
|
73
77
|
|
|
74
78
|
**Business Value:** Reconstructs the narrative of the project—such as the phased rollout of a feature, the execution of technical debt reduction, or major architectural pivots—abstracting the noise of atomic commits.
|
|
75
79
|
|
|
76
80
|
### 3. Hotspot Detection
|
|
81
|
+
|
|
77
82
|
Systemic risk areas are flagged by evaluating:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
|
|
84
|
+
- Modification frequency (commit velocity per file).
|
|
85
|
+
- Unique contributor volume.
|
|
86
|
+
- Codebase expansion rates over defined intervals.
|
|
81
87
|
|
|
82
88
|
**Business Value:** Statistically isolates files with a high probability of latent defects, pinpointing optimal candidates for targeted refactoring to prevent regressions.
|
|
83
89
|
|
|
84
90
|
### 4. Bus Factor Estimation
|
|
91
|
+
|
|
85
92
|
For any given module or specific file, Heildamm computes:
|
|
86
|
-
|
|
87
|
-
|
|
93
|
+
|
|
94
|
+
- The raw count of engineers possessing critical operational knowledge.
|
|
95
|
+
- The mathematical dependency on specific individual contributors.
|
|
88
96
|
|
|
89
97
|
**Business Value:** Provides objective metrics on structural maintenance risks and aids in capacity planning and team onboarding strategies.
|
|
90
98
|
|
|
@@ -103,9 +111,10 @@ Engine Core
|
|
|
103
111
|
```
|
|
104
112
|
|
|
105
113
|
**Planned Interface Layers:**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
114
|
+
|
|
115
|
+
- **CLI Engine:** Built for continuous integration (CI/CD) pipelines and terminal usage.
|
|
116
|
+
- **Local Visualization Server:** Generates interactive, browser-based telemetry dashboards.
|
|
117
|
+
- **Narrative Generator:** Compiles automated, human-readable executive summaries of codebase health.
|
|
109
118
|
|
|
110
119
|
---
|
|
111
120
|
|
|
@@ -113,24 +122,27 @@ Engine Core
|
|
|
113
122
|
|
|
114
123
|
The following features dictate the current development roadmap, all guaranteed to run in offline, air-gapped environments:
|
|
115
124
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
125
|
+
- **Deep Git Object Parsing:** Complete historical traversal without overhead.
|
|
126
|
+
- **Blame-Based Authorship Matrix:** High-fidelity contributor tracking.
|
|
127
|
+
- **Recency-Weighted Scoring System:** Intelligent degradation of historical authorship.
|
|
128
|
+
- **Commit Arc Clustering:** Feature-level timeline reconstruction.
|
|
129
|
+
- **Volatility Hotspot Scoring:** Predictive risk assessment based on churn.
|
|
130
|
+
- **Bus Factor Analytics:** Automated team dependency reporting.
|
|
122
131
|
|
|
123
132
|
---
|
|
124
133
|
|
|
125
134
|
## Getting Started (Planned)
|
|
126
135
|
|
|
127
136
|
### Installation
|
|
128
|
-
|
|
137
|
+
|
|
138
|
+
_(Pending release - placeholder for binary/package manager instructions)_
|
|
139
|
+
|
|
129
140
|
```bash
|
|
130
141
|
# Example: curl -sSL [https://heildamm.dev/install.sh](https://heildamm.dev/install.sh) | bash
|
|
131
142
|
```
|
|
132
143
|
|
|
133
144
|
### Usage Examples
|
|
145
|
+
|
|
134
146
|
Execute Heildamm at the root of your Git repository:
|
|
135
147
|
|
|
136
148
|
```bash
|
|
@@ -151,5 +163,5 @@ heildamm analyze . --format json > report.json
|
|
|
151
163
|
|
|
152
164
|
## License
|
|
153
165
|
|
|
154
|
-
Copyright © 2026. All rights reserved.
|
|
155
|
-
|
|
166
|
+
Copyright © 2026. All rights reserved.
|
|
167
|
+
_(Update this section with your specific open-source or proprietary license)._
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heildamm/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "A local-first Git analysis engine to extract structural, temporal, and ownership insights.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
7
8
|
"bin": {
|
|
8
9
|
"heildamm": "./bin/run.js"
|
|
9
10
|
},
|
|
@@ -42,10 +43,14 @@
|
|
|
42
43
|
],
|
|
43
44
|
"dependencies": {
|
|
44
45
|
"next": "16.1.6",
|
|
45
|
-
"react": "19.2.
|
|
46
|
-
"react-dom": "19.2.
|
|
46
|
+
"react": "19.2.4",
|
|
47
|
+
"react-dom": "19.2.4",
|
|
47
48
|
"server-only": "^0.0.1",
|
|
48
|
-
"zod": "^4.3.6"
|
|
49
|
+
"zod": "^4.3.6",
|
|
50
|
+
"chalk": "^5.3.0",
|
|
51
|
+
"boxen": "^7.1.1",
|
|
52
|
+
"gradient-string": "^2.0.2",
|
|
53
|
+
"figlet": "^1.7.0"
|
|
49
54
|
},
|
|
50
55
|
"devDependencies": {
|
|
51
56
|
"@tailwindcss/postcss": "^4",
|
|
@@ -53,9 +58,10 @@
|
|
|
53
58
|
"@types/react": "^19",
|
|
54
59
|
"@types/react-dom": "^19",
|
|
55
60
|
"babel-plugin-react-compiler": "1.0.0",
|
|
56
|
-
"eslint": "^
|
|
57
|
-
"eslint-config-next": "16.1
|
|
61
|
+
"eslint": "^10",
|
|
62
|
+
"eslint-config-next": "16.2.1",
|
|
63
|
+
"prettier": "^3.8.1",
|
|
58
64
|
"tailwindcss": "^4",
|
|
59
|
-
"typescript": "^
|
|
65
|
+
"typescript": "^6"
|
|
60
66
|
}
|
|
61
|
-
}
|
|
67
|
+
}
|