devarch 0.2.0__tar.gz → 0.2.1__tar.gz
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.
- {devarch-0.2.0 → devarch-0.2.1}/PKG-INFO +12 -16
- {devarch-0.2.0 → devarch-0.2.1}/README.md +290 -294
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/monsters.py +4 -2
- devarch-0.2.1/devarch.egg-info/PKG-INFO +313 -0
- devarch-0.2.1/devarch.egg-info/SOURCES.txt +43 -0
- devarch-0.2.1/devarch.egg-info/dependency_links.txt +1 -0
- devarch-0.2.1/devarch.egg-info/entry_points.txt +2 -0
- devarch-0.2.1/devarch.egg-info/requires.txt +15 -0
- devarch-0.2.1/devarch.egg-info/top_level.txt +1 -0
- {devarch-0.2.0 → devarch-0.2.1}/pyproject.toml +1 -1
- devarch-0.2.1/setup.cfg +4 -0
- devarch-0.2.0/.github/workflows/release-artifacts.yml +0 -33
- devarch-0.2.0/.gitignore +0 -37
- devarch-0.2.0/scripts/build_release.py +0 -80
- devarch-0.2.0/tests/conftest.py +0 -10
- {devarch-0.2.0 → devarch-0.2.1}/LICENSE +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/MANIFEST.in +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/assets/devarch-logo.png +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/assets/magnexis-logo.png +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/__init__.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/__main__.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/__init__.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/ancient.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/dead_code.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/duplicates.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/health.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/maintenance.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/recovery.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/ruins.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/suspicious.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/analyzers/todos.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/cli/__init__.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/cli/main.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/models.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/plugins.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/reports/__init__.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/reports/exporters.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/scanner/__init__.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/scanner/core.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/scanner/discovery.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/scanner/intelligence.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/utils/__init__.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/utils/fs.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/utils/git_info.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/utils/rich_ui.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/devarch/version.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/tests/test_analyzers.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/tests/test_cli.py +0 -0
- {devarch-0.2.0 → devarch-0.2.1}/tests/test_intelligence.py +0 -0
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devarch
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Dev Archaeologist: excavate dead code, technical debt, and forgotten artifacts in software projects.
|
|
5
5
|
Author: magnexis
|
|
6
|
+
License-Expression: MIT
|
|
6
7
|
Requires-Python: >=3.12
|
|
7
8
|
Description-Content-Type: text/markdown
|
|
8
|
-
License-Expression: MIT
|
|
9
9
|
License-File: LICENSE
|
|
10
10
|
Requires-Dist: typer>=0.12.3
|
|
11
11
|
Requires-Dist: rich>=13.7.1
|
|
12
12
|
Requires-Dist: pathspec>=0.12.1
|
|
13
|
-
Requires-Dist: radon>=6.0.1 ; extra == "extended"
|
|
14
|
-
Requires-Dist: networkx>=3.3 ; extra == "extended"
|
|
15
|
-
Requires-Dist: gitpython>=3.1.43 ; extra == "extended"
|
|
16
|
-
Requires-Dist: tree-sitter>=0.22.3 ; extra == "extended"
|
|
17
|
-
Requires-Dist: reportlab>=4.2.2 ; extra == "pdf"
|
|
18
|
-
Requires-Dist: pytest>=8.2.2 ; extra == "test"
|
|
19
13
|
Provides-Extra: extended
|
|
14
|
+
Requires-Dist: radon>=6.0.1; extra == "extended"
|
|
15
|
+
Requires-Dist: networkx>=3.3; extra == "extended"
|
|
16
|
+
Requires-Dist: gitpython>=3.1.43; extra == "extended"
|
|
17
|
+
Requires-Dist: tree-sitter>=0.22.3; extra == "extended"
|
|
20
18
|
Provides-Extra: pdf
|
|
19
|
+
Requires-Dist: reportlab>=4.2.2; extra == "pdf"
|
|
21
20
|
Provides-Extra: test
|
|
21
|
+
Requires-Dist: pytest>=8.2.2; extra == "test"
|
|
22
|
+
Dynamic: license-file
|
|
22
23
|
|
|
23
24
|
# Dev Archaeologist
|
|
24
25
|
|
|
@@ -146,16 +147,12 @@ python scripts/build_release.py
|
|
|
146
147
|
|
|
147
148
|
This produces the following artifacts in `dist/`:
|
|
148
149
|
|
|
149
|
-
-
|
|
150
|
-
-
|
|
151
|
-
-
|
|
150
|
+
- `devarch-0.2.0-py3-none-any.whl` for the Python wheel
|
|
151
|
+
- `devarch-0.2.0.tar.gz` for the source distribution
|
|
152
|
+
- `devarch-0.2.0-release.zip` for the bundled release archive
|
|
152
153
|
- `release-manifest.json` for artifact metadata
|
|
153
154
|
- `SHA256SUMS.txt` for checksum verification
|
|
154
155
|
|
|
155
|
-
The zip bundle is convenient for sharing the release set as a single downloadable package.
|
|
156
|
-
|
|
157
|
-
See [RELEASE_NOTES.md](RELEASE_NOTES.md) for the full release summary and artifact inventory.
|
|
158
|
-
|
|
159
156
|
## Command Reference
|
|
160
157
|
|
|
161
158
|
### Core excavation
|
|
@@ -314,4 +311,3 @@ The maintenance engine supports:
|
|
|
314
311
|
## License
|
|
315
312
|
|
|
316
313
|
MIT
|
|
317
|
-
|
|
@@ -1,294 +1,290 @@
|
|
|
1
|
-
# Dev Archaeologist
|
|
2
|
-
|
|
3
|
-
<p align="center">
|
|
4
|
-
<img src="assets/devarch-logo.png" alt="Dev Archaeologist logo" width="220">
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
<em>Software archaeology and repository intelligence from Magnexis<img src="assets/magnexis-logo.png" alt="Magnexis logo" width="35"></em>
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<p align="center">
|
|
13
|
-
<a href="#install"><img alt="Python 3.12+" src="https://img.shields.io/badge/Python-3.12%2B-blue.svg"></a>
|
|
14
|
-
<a href="#license"><img alt="MIT License" src="https://img.shields.io/badge/License-MIT-green.svg"></a>
|
|
15
|
-
<a href="#use"><img alt="CLI" src="https://img.shields.io/badge/CLI-devarch-8A6A3A.svg"></a>
|
|
16
|
-
<a href="#project-overview"><img alt="Magnexis" src="https://img.shields.io/badge/Brand-Magnexis-1F1F1F.svg"></a>
|
|
17
|
-
<a href="#release-artifacts"><img alt="Build sdist" src="https://img.shields.io/badge/Build-sdist%20%2B%20wheel-5E4B35.svg"></a>
|
|
18
|
-
<a href="#release-artifacts"><img alt="Release zip" src="https://img.shields.io/badge/Build-release%20zip-444444.svg"></a>
|
|
19
|
-
<a href="#release-artifacts"><img alt="Release manifest" src="https://img.shields.io/badge/Build-manifest%20%2B%20checksums-B8894D.svg"></a>
|
|
20
|
-
<a href="#project-overview"><img alt="Version" src="https://img.shields.io/badge/Version-0.2.0-444444.svg"></a>
|
|
21
|
-
</p>
|
|
22
|
-
|
|
23
|
-
Dev Archaeologist is a Magnexis-built Python CLI for excavating hidden technical debt, structural decay, and forgotten implementation artifacts in software repositories.
|
|
24
|
-
|
|
25
|
-
It treats every codebase like an archaeological dig site and helps you answer questions like:
|
|
26
|
-
|
|
27
|
-
- What code is ancient and likely abandoned?
|
|
28
|
-
- Where is the repository accumulating risk?
|
|
29
|
-
- Which files are structural weak points?
|
|
30
|
-
- What can be safely removed, refactored, or archived?
|
|
31
|
-
- How is the project evolving over time?
|
|
32
|
-
|
|
33
|
-
## Project Overview
|
|
34
|
-
|
|
35
|
-
The tool scans a repository and turns the results into a rich, terminal-first excavation report.
|
|
36
|
-
|
|
37
|
-
It can surface:
|
|
38
|
-
|
|
39
|
-
- dead code
|
|
40
|
-
- ancient files
|
|
41
|
-
- TODO, FIXME, HACK, BUG, TEMP, and XXX markers
|
|
42
|
-
- duplicated logic
|
|
43
|
-
- unused assets and empty directories
|
|
44
|
-
- suspicious backup-style filenames
|
|
45
|
-
- oversized, complex "monster" files
|
|
46
|
-
- dependency hotspots and fragile chains
|
|
47
|
-
- architectural drift and release readiness issues
|
|
48
|
-
- remediation suggestions with estimated effort
|
|
49
|
-
|
|
50
|
-
The design goals are:
|
|
51
|
-
|
|
52
|
-
- strong terminal UX
|
|
53
|
-
- modular analyzers
|
|
54
|
-
- readable artifact reports
|
|
55
|
-
- release-friendly packaging
|
|
56
|
-
- future plugin support
|
|
57
|
-
|
|
58
|
-
## Magnexis Brand
|
|
59
|
-
|
|
60
|
-
Dev Archaeologist is presented as part of the Magnexis tooling line.
|
|
61
|
-
|
|
62
|
-
Brand cues used in this repository:
|
|
63
|
-
|
|
64
|
-
- the archaeological emblem in the project logo
|
|
65
|
-
- the Magnexis name treatment in the README header
|
|
66
|
-
- the Magnexis mark used as a small brand seal
|
|
67
|
-
- a dedicated brand badge in the top badge row
|
|
68
|
-
- consistent earth-toned release and CLI styling
|
|
69
|
-
|
|
70
|
-
## Installation
|
|
71
|
-
|
|
72
|
-
Install from PyPI:
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
pip install devarch
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Install with optional extras:
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
pip install devarch[extended]
|
|
82
|
-
pip install devarch[release]
|
|
83
|
-
pip install devarch[test]
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
The `release` extra is useful if you want to build local distributions.
|
|
87
|
-
|
|
88
|
-
## Quick Start
|
|
89
|
-
|
|
90
|
-
Run a full excavation over the current directory:
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
devarch scan .
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
List every available command:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
devarch help
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Generate a markdown report:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
devarch export markdown
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Generate a PDF report:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
devarch report pdf
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Release Artifacts
|
|
115
|
-
|
|
116
|
-
Dev Archaeologist includes a repeatable release build flow for local packaging and CI artifact generation.
|
|
117
|
-
|
|
118
|
-
Build the release bundle locally:
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
pip install .[release]
|
|
122
|
-
python scripts/build_release.py
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
This produces the following artifacts in `dist/`:
|
|
126
|
-
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
- `release-manifest.json` for artifact metadata
|
|
131
|
-
- `SHA256SUMS.txt` for checksum verification
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
devarch
|
|
143
|
-
devarch
|
|
144
|
-
devarch
|
|
145
|
-
devarch
|
|
146
|
-
devarch
|
|
147
|
-
devarch
|
|
148
|
-
devarch
|
|
149
|
-
devarch
|
|
150
|
-
devarch
|
|
151
|
-
devarch
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
devarch
|
|
162
|
-
devarch
|
|
163
|
-
devarch
|
|
164
|
-
devarch
|
|
165
|
-
devarch
|
|
166
|
-
devarch
|
|
167
|
-
devarch
|
|
168
|
-
devarch
|
|
169
|
-
devarch
|
|
170
|
-
devarch
|
|
171
|
-
devarch
|
|
172
|
-
devarch
|
|
173
|
-
devarch
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
devarch
|
|
184
|
-
devarch
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
devarch
|
|
195
|
-
devarch
|
|
196
|
-
devarch
|
|
197
|
-
devarch
|
|
198
|
-
devarch
|
|
199
|
-
devarch
|
|
200
|
-
devarch
|
|
201
|
-
devarch
|
|
202
|
-
devarch
|
|
203
|
-
devarch
|
|
204
|
-
devarch
|
|
205
|
-
devarch
|
|
206
|
-
devarch
|
|
207
|
-
devarch
|
|
208
|
-
devarch
|
|
209
|
-
devarch
|
|
210
|
-
devarch
|
|
211
|
-
devarch
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
devarch
|
|
222
|
-
devarch
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
├──
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
-
|
|
282
|
-
-
|
|
283
|
-
-
|
|
284
|
-
-
|
|
285
|
-
-
|
|
286
|
-
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
## License
|
|
293
|
-
|
|
294
|
-
MIT
|
|
1
|
+
# Dev Archaeologist
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="assets/devarch-logo.png" alt="Dev Archaeologist logo" width="220">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<em>Software archaeology and repository intelligence from Magnexis<img src="assets/magnexis-logo.png" alt="Magnexis logo" width="35"></em>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="#install"><img alt="Python 3.12+" src="https://img.shields.io/badge/Python-3.12%2B-blue.svg"></a>
|
|
14
|
+
<a href="#license"><img alt="MIT License" src="https://img.shields.io/badge/License-MIT-green.svg"></a>
|
|
15
|
+
<a href="#use"><img alt="CLI" src="https://img.shields.io/badge/CLI-devarch-8A6A3A.svg"></a>
|
|
16
|
+
<a href="#project-overview"><img alt="Magnexis" src="https://img.shields.io/badge/Brand-Magnexis-1F1F1F.svg"></a>
|
|
17
|
+
<a href="#release-artifacts"><img alt="Build sdist" src="https://img.shields.io/badge/Build-sdist%20%2B%20wheel-5E4B35.svg"></a>
|
|
18
|
+
<a href="#release-artifacts"><img alt="Release zip" src="https://img.shields.io/badge/Build-release%20zip-444444.svg"></a>
|
|
19
|
+
<a href="#release-artifacts"><img alt="Release manifest" src="https://img.shields.io/badge/Build-manifest%20%2B%20checksums-B8894D.svg"></a>
|
|
20
|
+
<a href="#project-overview"><img alt="Version" src="https://img.shields.io/badge/Version-0.2.0-444444.svg"></a>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
Dev Archaeologist is a Magnexis-built Python CLI for excavating hidden technical debt, structural decay, and forgotten implementation artifacts in software repositories.
|
|
24
|
+
|
|
25
|
+
It treats every codebase like an archaeological dig site and helps you answer questions like:
|
|
26
|
+
|
|
27
|
+
- What code is ancient and likely abandoned?
|
|
28
|
+
- Where is the repository accumulating risk?
|
|
29
|
+
- Which files are structural weak points?
|
|
30
|
+
- What can be safely removed, refactored, or archived?
|
|
31
|
+
- How is the project evolving over time?
|
|
32
|
+
|
|
33
|
+
## Project Overview
|
|
34
|
+
|
|
35
|
+
The tool scans a repository and turns the results into a rich, terminal-first excavation report.
|
|
36
|
+
|
|
37
|
+
It can surface:
|
|
38
|
+
|
|
39
|
+
- dead code
|
|
40
|
+
- ancient files
|
|
41
|
+
- TODO, FIXME, HACK, BUG, TEMP, and XXX markers
|
|
42
|
+
- duplicated logic
|
|
43
|
+
- unused assets and empty directories
|
|
44
|
+
- suspicious backup-style filenames
|
|
45
|
+
- oversized, complex "monster" files
|
|
46
|
+
- dependency hotspots and fragile chains
|
|
47
|
+
- architectural drift and release readiness issues
|
|
48
|
+
- remediation suggestions with estimated effort
|
|
49
|
+
|
|
50
|
+
The design goals are:
|
|
51
|
+
|
|
52
|
+
- strong terminal UX
|
|
53
|
+
- modular analyzers
|
|
54
|
+
- readable artifact reports
|
|
55
|
+
- release-friendly packaging
|
|
56
|
+
- future plugin support
|
|
57
|
+
|
|
58
|
+
## Magnexis Brand
|
|
59
|
+
|
|
60
|
+
Dev Archaeologist is presented as part of the Magnexis tooling line.
|
|
61
|
+
|
|
62
|
+
Brand cues used in this repository:
|
|
63
|
+
|
|
64
|
+
- the archaeological emblem in the project logo
|
|
65
|
+
- the Magnexis name treatment in the README header
|
|
66
|
+
- the Magnexis mark used as a small brand seal
|
|
67
|
+
- a dedicated brand badge in the top badge row
|
|
68
|
+
- consistent earth-toned release and CLI styling
|
|
69
|
+
|
|
70
|
+
## Installation
|
|
71
|
+
|
|
72
|
+
Install from PyPI:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install devarch
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Install with optional extras:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
pip install devarch[extended]
|
|
82
|
+
pip install devarch[release]
|
|
83
|
+
pip install devarch[test]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The `release` extra is useful if you want to build local distributions.
|
|
87
|
+
|
|
88
|
+
## Quick Start
|
|
89
|
+
|
|
90
|
+
Run a full excavation over the current directory:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
devarch scan .
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
List every available command:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
devarch help
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Generate a markdown report:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
devarch export markdown
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Generate a PDF report:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
devarch report pdf
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Release Artifacts
|
|
115
|
+
|
|
116
|
+
Dev Archaeologist includes a repeatable release build flow for local packaging and CI artifact generation.
|
|
117
|
+
|
|
118
|
+
Build the release bundle locally:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
pip install .[release]
|
|
122
|
+
python scripts/build_release.py
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This produces the following artifacts in `dist/`:
|
|
126
|
+
|
|
127
|
+
- `devarch-0.2.0-py3-none-any.whl` for the Python wheel
|
|
128
|
+
- `devarch-0.2.0.tar.gz` for the source distribution
|
|
129
|
+
- `devarch-0.2.0-release.zip` for the bundled release archive
|
|
130
|
+
- `release-manifest.json` for artifact metadata
|
|
131
|
+
- `SHA256SUMS.txt` for checksum verification
|
|
132
|
+
|
|
133
|
+
## Command Reference
|
|
134
|
+
|
|
135
|
+
### Core excavation
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
devarch scan .
|
|
139
|
+
devarch help
|
|
140
|
+
devarch ancient .
|
|
141
|
+
devarch dead-code .
|
|
142
|
+
devarch todos .
|
|
143
|
+
devarch duplicates .
|
|
144
|
+
devarch monsters .
|
|
145
|
+
devarch ruins .
|
|
146
|
+
devarch suspicious .
|
|
147
|
+
devarch inspect src/app.py
|
|
148
|
+
devarch trace auth
|
|
149
|
+
devarch evidence auth
|
|
150
|
+
devarch bugmark src/app.py --line 128
|
|
151
|
+
devarch errorcode "ModuleNotFoundError: No module named 'rich'"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Repository intelligence
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
devarch dependencies .
|
|
158
|
+
devarch genealogy .
|
|
159
|
+
devarch civilizations .
|
|
160
|
+
devarch debt .
|
|
161
|
+
devarch timeline .
|
|
162
|
+
devarch personality .
|
|
163
|
+
devarch forecast .
|
|
164
|
+
devarch explore .
|
|
165
|
+
devarch investigate .
|
|
166
|
+
devarch weaknesses .
|
|
167
|
+
devarch quake .
|
|
168
|
+
devarch architecture .
|
|
169
|
+
devarch contributors .
|
|
170
|
+
devarch mutations .
|
|
171
|
+
devarch map .
|
|
172
|
+
devarch survival .
|
|
173
|
+
devarch notes .
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Forensic helpers
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
devarch investigate .
|
|
180
|
+
devarch inspect src/app.py
|
|
181
|
+
devarch trace auth
|
|
182
|
+
devarch evidence auth
|
|
183
|
+
devarch bugmark src/app.py --line 128
|
|
184
|
+
devarch errorcode "ModuleNotFoundError: No module named 'rich'"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Recovery and maintenance
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
devarch plan .
|
|
191
|
+
devarch delete-check src/legacy_auth.py
|
|
192
|
+
devarch refactor .
|
|
193
|
+
devarch routes .
|
|
194
|
+
devarch configs .
|
|
195
|
+
devarch migrations .
|
|
196
|
+
devarch deps .
|
|
197
|
+
devarch drift .
|
|
198
|
+
devarch pr-report .
|
|
199
|
+
devarch status .
|
|
200
|
+
devarch baseline .
|
|
201
|
+
devarch regressions .
|
|
202
|
+
devarch budget .
|
|
203
|
+
devarch release-check .
|
|
204
|
+
devarch ownership .
|
|
205
|
+
devarch dependency-health .
|
|
206
|
+
devarch cleanup .
|
|
207
|
+
devarch standards .
|
|
208
|
+
devarch history .
|
|
209
|
+
devarch recommend .
|
|
210
|
+
devarch prescribe .
|
|
211
|
+
devarch repair-plan .
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Reporting
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
devarch export json
|
|
218
|
+
devarch export markdown
|
|
219
|
+
devarch export html
|
|
220
|
+
devarch report markdown
|
|
221
|
+
devarch report html
|
|
222
|
+
devarch report pdf
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Output Philosophy
|
|
226
|
+
|
|
227
|
+
Each finding is designed to be actionable instead of just descriptive.
|
|
228
|
+
|
|
229
|
+
Typical output includes:
|
|
230
|
+
|
|
231
|
+
- problem
|
|
232
|
+
- evidence
|
|
233
|
+
- impact
|
|
234
|
+
- confidence
|
|
235
|
+
- recommended fix
|
|
236
|
+
- estimated effort
|
|
237
|
+
- risk level
|
|
238
|
+
|
|
239
|
+
That makes the tool useful not just for audits, but also for cleanup planning, code review, and release preparation.
|
|
240
|
+
|
|
241
|
+
## Plugin Architecture
|
|
242
|
+
|
|
243
|
+
Dev Archaeologist exposes a lightweight plugin registry via the `devarch.plugins` entry-point group so future extensions can hook into the excavation pipeline.
|
|
244
|
+
|
|
245
|
+
Planned extension areas include:
|
|
246
|
+
|
|
247
|
+
- `devarch-plugin-security`
|
|
248
|
+
- `devarch-plugin-ai`
|
|
249
|
+
- `devarch-plugin-performance`
|
|
250
|
+
|
|
251
|
+
## Development
|
|
252
|
+
|
|
253
|
+
Project layout:
|
|
254
|
+
|
|
255
|
+
```text
|
|
256
|
+
devarch/
|
|
257
|
+
├── analyzers/
|
|
258
|
+
├── cli/
|
|
259
|
+
├── reports/
|
|
260
|
+
├── scanner/
|
|
261
|
+
├── utils/
|
|
262
|
+
└── tests/
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Useful commands:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
python -m pytest -q
|
|
269
|
+
python -m compileall devarch
|
|
270
|
+
python scripts/build_release.py
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Repository Maintenance
|
|
274
|
+
|
|
275
|
+
The maintenance engine supports:
|
|
276
|
+
|
|
277
|
+
- baseline snapshots
|
|
278
|
+
- regression detection
|
|
279
|
+
- debt budgets
|
|
280
|
+
- release readiness checks
|
|
281
|
+
- ownership analysis
|
|
282
|
+
- dependency health monitoring
|
|
283
|
+
- cleanup recommendations
|
|
284
|
+
- standards checks
|
|
285
|
+
- health history
|
|
286
|
+
- remediation prescriptions
|
|
287
|
+
|
|
288
|
+
## License
|
|
289
|
+
|
|
290
|
+
MIT
|
|
@@ -19,9 +19,11 @@ def dependency_count(content: str) -> int:
|
|
|
19
19
|
count = 0
|
|
20
20
|
for line in content.splitlines():
|
|
21
21
|
line = line.strip()
|
|
22
|
-
if line.startswith("import ")
|
|
22
|
+
if line.startswith("import "):
|
|
23
23
|
count += 1
|
|
24
|
-
|
|
24
|
+
elif line.startswith("from "):
|
|
25
|
+
count += 1
|
|
26
|
+
elif line.startswith("require("):
|
|
25
27
|
count += 1
|
|
26
28
|
return count
|
|
27
29
|
|