devarch 0.2.0__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/.github/workflows/release-artifacts.yml +33 -0
- devarch-0.2.0/.gitignore +37 -0
- devarch-0.2.0/LICENSE +22 -0
- devarch-0.2.0/MANIFEST.in +4 -0
- devarch-0.2.0/PKG-INFO +317 -0
- devarch-0.2.0/README.md +294 -0
- devarch-0.2.0/assets/devarch-logo.png +0 -0
- devarch-0.2.0/assets/magnexis-logo.png +0 -0
- devarch-0.2.0/devarch/__init__.py +4 -0
- devarch-0.2.0/devarch/__main__.py +4 -0
- devarch-0.2.0/devarch/analyzers/__init__.py +2 -0
- devarch-0.2.0/devarch/analyzers/ancient.py +48 -0
- devarch-0.2.0/devarch/analyzers/dead_code.py +92 -0
- devarch-0.2.0/devarch/analyzers/duplicates.py +101 -0
- devarch-0.2.0/devarch/analyzers/health.py +60 -0
- devarch-0.2.0/devarch/analyzers/maintenance.py +902 -0
- devarch-0.2.0/devarch/analyzers/monsters.py +62 -0
- devarch-0.2.0/devarch/analyzers/recovery.py +338 -0
- devarch-0.2.0/devarch/analyzers/ruins.py +45 -0
- devarch-0.2.0/devarch/analyzers/suspicious.py +39 -0
- devarch-0.2.0/devarch/analyzers/todos.py +60 -0
- devarch-0.2.0/devarch/cli/__init__.py +2 -0
- devarch-0.2.0/devarch/cli/main.py +1708 -0
- devarch-0.2.0/devarch/models.py +43 -0
- devarch-0.2.0/devarch/plugins.py +29 -0
- devarch-0.2.0/devarch/reports/__init__.py +2 -0
- devarch-0.2.0/devarch/reports/exporters.py +274 -0
- devarch-0.2.0/devarch/scanner/__init__.py +2 -0
- devarch-0.2.0/devarch/scanner/core.py +15 -0
- devarch-0.2.0/devarch/scanner/discovery.py +84 -0
- devarch-0.2.0/devarch/scanner/intelligence.py +1559 -0
- devarch-0.2.0/devarch/utils/__init__.py +2 -0
- devarch-0.2.0/devarch/utils/fs.py +165 -0
- devarch-0.2.0/devarch/utils/git_info.py +64 -0
- devarch-0.2.0/devarch/utils/rich_ui.py +107 -0
- devarch-0.2.0/devarch/version.py +3 -0
- devarch-0.2.0/pyproject.toml +45 -0
- devarch-0.2.0/scripts/build_release.py +80 -0
- devarch-0.2.0/tests/conftest.py +10 -0
- devarch-0.2.0/tests/test_analyzers.py +94 -0
- devarch-0.2.0/tests/test_cli.py +89 -0
- devarch-0.2.0/tests/test_intelligence.py +43 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: release-artifacts
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Check out repository
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Set up Python
|
|
18
|
+
uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.12"
|
|
21
|
+
|
|
22
|
+
- name: Install release dependencies
|
|
23
|
+
run: python -m pip install --upgrade pip build twine
|
|
24
|
+
|
|
25
|
+
- name: Build release artifacts
|
|
26
|
+
run: python scripts/build_release.py
|
|
27
|
+
|
|
28
|
+
- name: Upload artifacts
|
|
29
|
+
uses: actions/upload-artifact@v4
|
|
30
|
+
with:
|
|
31
|
+
name: devarch-release-artifacts
|
|
32
|
+
path: dist/
|
|
33
|
+
if-no-files-found: error
|
devarch-0.2.0/.gitignore
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Python bytecode and caches
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.pyd
|
|
5
|
+
|
|
6
|
+
# Virtual environments
|
|
7
|
+
.venv/
|
|
8
|
+
venv/
|
|
9
|
+
env/
|
|
10
|
+
|
|
11
|
+
# Packaging and build outputs
|
|
12
|
+
build/
|
|
13
|
+
dist/
|
|
14
|
+
*.egg-info/
|
|
15
|
+
*.whl
|
|
16
|
+
|
|
17
|
+
# Test and lint caches
|
|
18
|
+
.pytest_cache/
|
|
19
|
+
.mypy_cache/
|
|
20
|
+
.ruff_cache/
|
|
21
|
+
.coverage
|
|
22
|
+
.coverage.*
|
|
23
|
+
htmlcov/
|
|
24
|
+
|
|
25
|
+
# Dev Archaeologist generated state and reports
|
|
26
|
+
.devarch/
|
|
27
|
+
devarch-report.json
|
|
28
|
+
devarch-report.md
|
|
29
|
+
devarch-report.markdown
|
|
30
|
+
devarch-report.html
|
|
31
|
+
devarch-report.pdf
|
|
32
|
+
|
|
33
|
+
# OS and editor noise
|
|
34
|
+
.DS_Store
|
|
35
|
+
Thumbs.db
|
|
36
|
+
.vscode/
|
|
37
|
+
.idea/
|
devarch-0.2.0/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Dev Archaeologist Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
devarch-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devarch
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Dev Archaeologist: excavate dead code, technical debt, and forgotten artifacts in software projects.
|
|
5
|
+
Author: magnexis
|
|
6
|
+
Requires-Python: >=3.12
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Dist: typer>=0.12.3
|
|
11
|
+
Requires-Dist: rich>=13.7.1
|
|
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
|
+
Provides-Extra: extended
|
|
20
|
+
Provides-Extra: pdf
|
|
21
|
+
Provides-Extra: test
|
|
22
|
+
|
|
23
|
+
# Dev Archaeologist
|
|
24
|
+
|
|
25
|
+
<p align="center">
|
|
26
|
+
<img src="assets/devarch-logo.png" alt="Dev Archaeologist logo" width="220">
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
<p align="center">
|
|
30
|
+
<em>Software archaeology and repository intelligence from Magnexis<img src="assets/magnexis-logo.png" alt="Magnexis logo" width="35"></em>
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<a href="#install"><img alt="Python 3.12+" src="https://img.shields.io/badge/Python-3.12%2B-blue.svg"></a>
|
|
36
|
+
<a href="#license"><img alt="MIT License" src="https://img.shields.io/badge/License-MIT-green.svg"></a>
|
|
37
|
+
<a href="#use"><img alt="CLI" src="https://img.shields.io/badge/CLI-devarch-8A6A3A.svg"></a>
|
|
38
|
+
<a href="#project-overview"><img alt="Magnexis" src="https://img.shields.io/badge/Brand-Magnexis-1F1F1F.svg"></a>
|
|
39
|
+
<a href="#release-artifacts"><img alt="Build sdist" src="https://img.shields.io/badge/Build-sdist%20%2B%20wheel-5E4B35.svg"></a>
|
|
40
|
+
<a href="#release-artifacts"><img alt="Release zip" src="https://img.shields.io/badge/Build-release%20zip-444444.svg"></a>
|
|
41
|
+
<a href="#release-artifacts"><img alt="Release manifest" src="https://img.shields.io/badge/Build-manifest%20%2B%20checksums-B8894D.svg"></a>
|
|
42
|
+
<a href="#project-overview"><img alt="Version" src="https://img.shields.io/badge/Version-0.2.0-444444.svg"></a>
|
|
43
|
+
</p>
|
|
44
|
+
|
|
45
|
+
Dev Archaeologist is a Magnexis-built Python CLI for excavating hidden technical debt, structural decay, and forgotten implementation artifacts in software repositories.
|
|
46
|
+
|
|
47
|
+
It treats every codebase like an archaeological dig site and helps you answer questions like:
|
|
48
|
+
|
|
49
|
+
- What code is ancient and likely abandoned?
|
|
50
|
+
- Where is the repository accumulating risk?
|
|
51
|
+
- Which files are structural weak points?
|
|
52
|
+
- What can be safely removed, refactored, or archived?
|
|
53
|
+
- How is the project evolving over time?
|
|
54
|
+
|
|
55
|
+
## Project Overview
|
|
56
|
+
|
|
57
|
+
The tool scans a repository and turns the results into a rich, terminal-first excavation report.
|
|
58
|
+
|
|
59
|
+
It can surface:
|
|
60
|
+
|
|
61
|
+
- dead code
|
|
62
|
+
- ancient files
|
|
63
|
+
- TODO, FIXME, HACK, BUG, TEMP, and XXX markers
|
|
64
|
+
- duplicated logic
|
|
65
|
+
- unused assets and empty directories
|
|
66
|
+
- suspicious backup-style filenames
|
|
67
|
+
- oversized, complex "monster" files
|
|
68
|
+
- dependency hotspots and fragile chains
|
|
69
|
+
- architectural drift and release readiness issues
|
|
70
|
+
- remediation suggestions with estimated effort
|
|
71
|
+
|
|
72
|
+
The design goals are:
|
|
73
|
+
|
|
74
|
+
- strong terminal UX
|
|
75
|
+
- modular analyzers
|
|
76
|
+
- readable artifact reports
|
|
77
|
+
- release-friendly packaging
|
|
78
|
+
- future plugin support
|
|
79
|
+
|
|
80
|
+
## Magnexis Brand
|
|
81
|
+
|
|
82
|
+
Dev Archaeologist is presented as part of the Magnexis tooling line.
|
|
83
|
+
|
|
84
|
+
Brand cues used in this repository:
|
|
85
|
+
|
|
86
|
+
- the archaeological emblem in the project logo
|
|
87
|
+
- the Magnexis name treatment in the README header
|
|
88
|
+
- the Magnexis mark used as a small brand seal
|
|
89
|
+
- a dedicated brand badge in the top badge row
|
|
90
|
+
- consistent earth-toned release and CLI styling
|
|
91
|
+
|
|
92
|
+
## Installation
|
|
93
|
+
|
|
94
|
+
Install from PyPI:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
pip install devarch
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Install with optional extras:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pip install devarch[extended]
|
|
104
|
+
pip install devarch[release]
|
|
105
|
+
pip install devarch[test]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
The `release` extra is useful if you want to build local distributions.
|
|
109
|
+
|
|
110
|
+
## Quick Start
|
|
111
|
+
|
|
112
|
+
Run a full excavation over the current directory:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
devarch scan .
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
List every available command:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
devarch help
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Generate a markdown report:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
devarch export markdown
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Generate a PDF report:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
devarch report pdf
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Release Artifacts
|
|
137
|
+
|
|
138
|
+
Dev Archaeologist includes a repeatable release build flow for local packaging and CI artifact generation.
|
|
139
|
+
|
|
140
|
+
Build the release bundle locally:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
pip install .[release]
|
|
144
|
+
python scripts/build_release.py
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
This produces the following artifacts in `dist/`:
|
|
148
|
+
|
|
149
|
+
- `*.whl` for Python wheel distribution
|
|
150
|
+
- `*.tar.gz` for source distribution
|
|
151
|
+
- `*-release.zip` for a bundled release archive
|
|
152
|
+
- `release-manifest.json` for artifact metadata
|
|
153
|
+
- `SHA256SUMS.txt` for checksum verification
|
|
154
|
+
|
|
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
|
+
## Command Reference
|
|
160
|
+
|
|
161
|
+
### Core excavation
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
devarch scan .
|
|
165
|
+
devarch help
|
|
166
|
+
devarch ancient .
|
|
167
|
+
devarch dead-code .
|
|
168
|
+
devarch todos .
|
|
169
|
+
devarch duplicates .
|
|
170
|
+
devarch monsters .
|
|
171
|
+
devarch ruins .
|
|
172
|
+
devarch suspicious .
|
|
173
|
+
devarch inspect src/app.py
|
|
174
|
+
devarch trace auth
|
|
175
|
+
devarch evidence auth
|
|
176
|
+
devarch bugmark src/app.py --line 128
|
|
177
|
+
devarch errorcode "ModuleNotFoundError: No module named 'rich'"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Repository intelligence
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
devarch dependencies .
|
|
184
|
+
devarch genealogy .
|
|
185
|
+
devarch civilizations .
|
|
186
|
+
devarch debt .
|
|
187
|
+
devarch timeline .
|
|
188
|
+
devarch personality .
|
|
189
|
+
devarch forecast .
|
|
190
|
+
devarch explore .
|
|
191
|
+
devarch investigate .
|
|
192
|
+
devarch weaknesses .
|
|
193
|
+
devarch quake .
|
|
194
|
+
devarch architecture .
|
|
195
|
+
devarch contributors .
|
|
196
|
+
devarch mutations .
|
|
197
|
+
devarch map .
|
|
198
|
+
devarch survival .
|
|
199
|
+
devarch notes .
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Forensic helpers
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
devarch investigate .
|
|
206
|
+
devarch inspect src/app.py
|
|
207
|
+
devarch trace auth
|
|
208
|
+
devarch evidence auth
|
|
209
|
+
devarch bugmark src/app.py --line 128
|
|
210
|
+
devarch errorcode "ModuleNotFoundError: No module named 'rich'"
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Recovery and maintenance
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
devarch plan .
|
|
217
|
+
devarch delete-check src/legacy_auth.py
|
|
218
|
+
devarch refactor .
|
|
219
|
+
devarch routes .
|
|
220
|
+
devarch configs .
|
|
221
|
+
devarch migrations .
|
|
222
|
+
devarch deps .
|
|
223
|
+
devarch drift .
|
|
224
|
+
devarch pr-report .
|
|
225
|
+
devarch status .
|
|
226
|
+
devarch baseline .
|
|
227
|
+
devarch regressions .
|
|
228
|
+
devarch budget .
|
|
229
|
+
devarch release-check .
|
|
230
|
+
devarch ownership .
|
|
231
|
+
devarch dependency-health .
|
|
232
|
+
devarch cleanup .
|
|
233
|
+
devarch standards .
|
|
234
|
+
devarch history .
|
|
235
|
+
devarch recommend .
|
|
236
|
+
devarch prescribe .
|
|
237
|
+
devarch repair-plan .
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Reporting
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
devarch export json
|
|
244
|
+
devarch export markdown
|
|
245
|
+
devarch export html
|
|
246
|
+
devarch report markdown
|
|
247
|
+
devarch report html
|
|
248
|
+
devarch report pdf
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## Output Philosophy
|
|
252
|
+
|
|
253
|
+
Each finding is designed to be actionable instead of just descriptive.
|
|
254
|
+
|
|
255
|
+
Typical output includes:
|
|
256
|
+
|
|
257
|
+
- problem
|
|
258
|
+
- evidence
|
|
259
|
+
- impact
|
|
260
|
+
- confidence
|
|
261
|
+
- recommended fix
|
|
262
|
+
- estimated effort
|
|
263
|
+
- risk level
|
|
264
|
+
|
|
265
|
+
That makes the tool useful not just for audits, but also for cleanup planning, code review, and release preparation.
|
|
266
|
+
|
|
267
|
+
## Plugin Architecture
|
|
268
|
+
|
|
269
|
+
Dev Archaeologist exposes a lightweight plugin registry via the `devarch.plugins` entry-point group so future extensions can hook into the excavation pipeline.
|
|
270
|
+
|
|
271
|
+
Planned extension areas include:
|
|
272
|
+
|
|
273
|
+
- `devarch-plugin-security`
|
|
274
|
+
- `devarch-plugin-ai`
|
|
275
|
+
- `devarch-plugin-performance`
|
|
276
|
+
|
|
277
|
+
## Development
|
|
278
|
+
|
|
279
|
+
Project layout:
|
|
280
|
+
|
|
281
|
+
```text
|
|
282
|
+
devarch/
|
|
283
|
+
├── analyzers/
|
|
284
|
+
├── cli/
|
|
285
|
+
├── reports/
|
|
286
|
+
├── scanner/
|
|
287
|
+
├── utils/
|
|
288
|
+
└── tests/
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Useful commands:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
python -m pytest -q
|
|
295
|
+
python -m compileall devarch
|
|
296
|
+
python scripts/build_release.py
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## Repository Maintenance
|
|
300
|
+
|
|
301
|
+
The maintenance engine supports:
|
|
302
|
+
|
|
303
|
+
- baseline snapshots
|
|
304
|
+
- regression detection
|
|
305
|
+
- debt budgets
|
|
306
|
+
- release readiness checks
|
|
307
|
+
- ownership analysis
|
|
308
|
+
- dependency health monitoring
|
|
309
|
+
- cleanup recommendations
|
|
310
|
+
- standards checks
|
|
311
|
+
- health history
|
|
312
|
+
- remediation prescriptions
|
|
313
|
+
|
|
314
|
+
## License
|
|
315
|
+
|
|
316
|
+
MIT
|
|
317
|
+
|
devarch-0.2.0/README.md
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
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
|
+
- `*.whl` for Python wheel distribution
|
|
128
|
+
- `*.tar.gz` for source distribution
|
|
129
|
+
- `*-release.zip` for a bundled release archive
|
|
130
|
+
- `release-manifest.json` for artifact metadata
|
|
131
|
+
- `SHA256SUMS.txt` for checksum verification
|
|
132
|
+
|
|
133
|
+
The zip bundle is convenient for sharing the release set as a single downloadable package.
|
|
134
|
+
|
|
135
|
+
See [RELEASE_NOTES.md](RELEASE_NOTES.md) for the full release summary and artifact inventory.
|
|
136
|
+
|
|
137
|
+
## Command Reference
|
|
138
|
+
|
|
139
|
+
### Core excavation
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
devarch scan .
|
|
143
|
+
devarch help
|
|
144
|
+
devarch ancient .
|
|
145
|
+
devarch dead-code .
|
|
146
|
+
devarch todos .
|
|
147
|
+
devarch duplicates .
|
|
148
|
+
devarch monsters .
|
|
149
|
+
devarch ruins .
|
|
150
|
+
devarch suspicious .
|
|
151
|
+
devarch inspect src/app.py
|
|
152
|
+
devarch trace auth
|
|
153
|
+
devarch evidence auth
|
|
154
|
+
devarch bugmark src/app.py --line 128
|
|
155
|
+
devarch errorcode "ModuleNotFoundError: No module named 'rich'"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Repository intelligence
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
devarch dependencies .
|
|
162
|
+
devarch genealogy .
|
|
163
|
+
devarch civilizations .
|
|
164
|
+
devarch debt .
|
|
165
|
+
devarch timeline .
|
|
166
|
+
devarch personality .
|
|
167
|
+
devarch forecast .
|
|
168
|
+
devarch explore .
|
|
169
|
+
devarch investigate .
|
|
170
|
+
devarch weaknesses .
|
|
171
|
+
devarch quake .
|
|
172
|
+
devarch architecture .
|
|
173
|
+
devarch contributors .
|
|
174
|
+
devarch mutations .
|
|
175
|
+
devarch map .
|
|
176
|
+
devarch survival .
|
|
177
|
+
devarch notes .
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Forensic helpers
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
devarch investigate .
|
|
184
|
+
devarch inspect src/app.py
|
|
185
|
+
devarch trace auth
|
|
186
|
+
devarch evidence auth
|
|
187
|
+
devarch bugmark src/app.py --line 128
|
|
188
|
+
devarch errorcode "ModuleNotFoundError: No module named 'rich'"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Recovery and maintenance
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
devarch plan .
|
|
195
|
+
devarch delete-check src/legacy_auth.py
|
|
196
|
+
devarch refactor .
|
|
197
|
+
devarch routes .
|
|
198
|
+
devarch configs .
|
|
199
|
+
devarch migrations .
|
|
200
|
+
devarch deps .
|
|
201
|
+
devarch drift .
|
|
202
|
+
devarch pr-report .
|
|
203
|
+
devarch status .
|
|
204
|
+
devarch baseline .
|
|
205
|
+
devarch regressions .
|
|
206
|
+
devarch budget .
|
|
207
|
+
devarch release-check .
|
|
208
|
+
devarch ownership .
|
|
209
|
+
devarch dependency-health .
|
|
210
|
+
devarch cleanup .
|
|
211
|
+
devarch standards .
|
|
212
|
+
devarch history .
|
|
213
|
+
devarch recommend .
|
|
214
|
+
devarch prescribe .
|
|
215
|
+
devarch repair-plan .
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Reporting
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
devarch export json
|
|
222
|
+
devarch export markdown
|
|
223
|
+
devarch export html
|
|
224
|
+
devarch report markdown
|
|
225
|
+
devarch report html
|
|
226
|
+
devarch report pdf
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Output Philosophy
|
|
230
|
+
|
|
231
|
+
Each finding is designed to be actionable instead of just descriptive.
|
|
232
|
+
|
|
233
|
+
Typical output includes:
|
|
234
|
+
|
|
235
|
+
- problem
|
|
236
|
+
- evidence
|
|
237
|
+
- impact
|
|
238
|
+
- confidence
|
|
239
|
+
- recommended fix
|
|
240
|
+
- estimated effort
|
|
241
|
+
- risk level
|
|
242
|
+
|
|
243
|
+
That makes the tool useful not just for audits, but also for cleanup planning, code review, and release preparation.
|
|
244
|
+
|
|
245
|
+
## Plugin Architecture
|
|
246
|
+
|
|
247
|
+
Dev Archaeologist exposes a lightweight plugin registry via the `devarch.plugins` entry-point group so future extensions can hook into the excavation pipeline.
|
|
248
|
+
|
|
249
|
+
Planned extension areas include:
|
|
250
|
+
|
|
251
|
+
- `devarch-plugin-security`
|
|
252
|
+
- `devarch-plugin-ai`
|
|
253
|
+
- `devarch-plugin-performance`
|
|
254
|
+
|
|
255
|
+
## Development
|
|
256
|
+
|
|
257
|
+
Project layout:
|
|
258
|
+
|
|
259
|
+
```text
|
|
260
|
+
devarch/
|
|
261
|
+
├── analyzers/
|
|
262
|
+
├── cli/
|
|
263
|
+
├── reports/
|
|
264
|
+
├── scanner/
|
|
265
|
+
├── utils/
|
|
266
|
+
└── tests/
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Useful commands:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
python -m pytest -q
|
|
273
|
+
python -m compileall devarch
|
|
274
|
+
python scripts/build_release.py
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Repository Maintenance
|
|
278
|
+
|
|
279
|
+
The maintenance engine supports:
|
|
280
|
+
|
|
281
|
+
- baseline snapshots
|
|
282
|
+
- regression detection
|
|
283
|
+
- debt budgets
|
|
284
|
+
- release readiness checks
|
|
285
|
+
- ownership analysis
|
|
286
|
+
- dependency health monitoring
|
|
287
|
+
- cleanup recommendations
|
|
288
|
+
- standards checks
|
|
289
|
+
- health history
|
|
290
|
+
- remediation prescriptions
|
|
291
|
+
|
|
292
|
+
## License
|
|
293
|
+
|
|
294
|
+
MIT
|
|
Binary file
|
|
Binary file
|