CLAUDE.md rewritten (708 -> ~320 lines): four overlapping release sections collapsed to one, stale v1->v35 schema history dropped (it lives in CHANGELOG), marketplace endpoint internals and verbose process sections moved out or tightened. New focused docs: - docs/RELEASING.md - release process, deploy workflows, CI quirks (RELEASE_TEMPLATE.md folded in as an appendix) - docs/marketplace.md - marketplace ingestion + re-serving internals - docs/README.md - documentation index by audience, linked from README.md and CLAUDE.md Archived under docs/archive/: docs/superpowers/ (52 historical planning artifacts), HACKATHON.md, pd-ps-comments.md, security-audit-2026-04.md, future/NOTIFICATIONS.md. Removed the docs/auto-install.md stub. Fixed dangling links in connectors/jira/README.md and dev_docs/README.md, repointed code/doc references to archived paths.
259 lines
7 KiB
Markdown
259 lines
7 KiB
Markdown
# Dead Code & Legacy Artifact Cleanup
|
|
|
|
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
|
|
|
**Goal:** Remove 17 dead files, fix broken Makefile, and clean up legacy artifacts that survived the v1→v2 migration.
|
|
|
|
**Architecture:** Pure deletion + one Makefile rewrite. No functional changes — only removing code/files that are never imported, referenced, or executed.
|
|
|
|
**Tech Stack:** git rm, pytest
|
|
|
|
**Source:** Deep audit of all tracked files with grep-verified zero-reference confirmation (2026-04-09).
|
|
|
|
---
|
|
|
|
### Task 1: Remove dead scripts
|
|
|
|
These scripts have zero references anywhere in the codebase.
|
|
|
|
**Files to delete:**
|
|
- `scripts/collect_session.py` — unused SessionEnd hook
|
|
- `scripts/generate_user_sync_configs.py` — replaced by DuckDB API
|
|
- `scripts/standalone_profiler.py` — replaced by `src/profiler.py`
|
|
- `scripts/remote_query.sh` — references non-existent module
|
|
- `scripts/update.sh` — calls `src.data_sync` and `docs/data_description.md` (both gone)
|
|
- `scripts/setup_views.sh` — depends on deleted `sync_data.sh`
|
|
- `scripts/test_sync.sh` — rsync diagnostics for resolved Issue #197
|
|
- `scripts/activate_venv.sh` — Docker uses direct venv paths
|
|
- `scripts/backfill_gap.sh` — one-time Jira backfill with hardcoded issue ranges
|
|
- `scripts/sync_config_template.yaml` — v1 sync config template
|
|
|
|
- [ ] **Step 1: Delete all dead scripts**
|
|
|
|
```bash
|
|
git rm scripts/collect_session.py \
|
|
scripts/generate_user_sync_configs.py \
|
|
scripts/standalone_profiler.py \
|
|
scripts/remote_query.sh \
|
|
scripts/update.sh \
|
|
scripts/setup_views.sh \
|
|
scripts/test_sync.sh \
|
|
scripts/activate_venv.sh \
|
|
scripts/backfill_gap.sh \
|
|
scripts/sync_config_template.yaml
|
|
```
|
|
|
|
- [ ] **Step 2: Run tests**
|
|
|
|
Run: `pytest tests/ -q --tb=short`
|
|
Expected: All 654 pass (none of these scripts are imported by tests)
|
|
|
|
- [ ] **Step 3: Commit**
|
|
|
|
```bash
|
|
git commit -m "chore: remove 10 dead scripts from v1 architecture"
|
|
```
|
|
|
|
---
|
|
|
|
### Task 2: Remove legacy config example and root artifacts
|
|
|
|
**Files to delete:**
|
|
- `config/data_description.md.example` — v1 markdown-based table config, replaced by DuckDB `table_registry`
|
|
- `llms.txt` — describes v1 modules (`src/data_sync.py`, `webapp/app.py`, etc.) that don't exist
|
|
|
|
**Note on `data_description.md`:** `src/profiler.py` still references `docs/data_description.md` (line 95) but handles its absence gracefully (logs warning, skips). The `.example` file is just a template — removing it doesn't affect runtime.
|
|
|
|
- [ ] **Step 1: Delete files**
|
|
|
|
```bash
|
|
git rm config/data_description.md.example llms.txt
|
|
```
|
|
|
|
- [ ] **Step 2: Run tests**
|
|
|
|
Run: `pytest tests/ -q --tb=short`
|
|
Expected: All pass
|
|
|
|
- [ ] **Step 3: Commit**
|
|
|
|
```bash
|
|
git commit -m "chore: remove legacy data_description.md.example and outdated llms.txt"
|
|
```
|
|
|
|
---
|
|
|
|
### Task 3: Remove completed planning docs from dev_docs
|
|
|
|
These are implementation plans for features that are done.
|
|
|
|
**Files to delete:**
|
|
- `dev_docs/plan-rsync-fix.md` — rsync fix (Issue #197, resolved)
|
|
- `dev_docs/plan_parquet_types_fix.md` — parquet type fix (Issues #185-187, resolved)
|
|
- `dev_docs/plan-corporate-memory.md` — corporate memory governance (fully implemented)
|
|
|
|
- [ ] **Step 1: Delete files**
|
|
|
|
```bash
|
|
git rm dev_docs/plan-rsync-fix.md \
|
|
dev_docs/plan_parquet_types_fix.md \
|
|
dev_docs/plan-corporate-memory.md
|
|
```
|
|
|
|
- [ ] **Step 2: Commit**
|
|
|
|
```bash
|
|
git commit -m "chore: remove completed planning docs (rsync fix, parquet types, corporate memory)"
|
|
```
|
|
|
|
---
|
|
|
|
### Task 4: Remove unused notification examples
|
|
|
|
`examples/notifications/` contains 3 Python scripts for a notification feature that was never built.
|
|
|
|
**Files to delete:**
|
|
- `examples/notifications/data_freshness.py`
|
|
- `examples/notifications/metric_report.py`
|
|
- `examples/notifications/revenue_drop.py`
|
|
|
|
- [ ] **Step 1: Check if examples/ has anything else**
|
|
|
|
```bash
|
|
git ls-files examples/
|
|
```
|
|
|
|
If only these 3 files, delete the entire directory.
|
|
|
|
- [ ] **Step 2: Delete**
|
|
|
|
```bash
|
|
git rm -r examples/
|
|
```
|
|
|
|
- [ ] **Step 3: Commit**
|
|
|
|
```bash
|
|
git commit -m "chore: remove unused notification examples (feature not implemented)"
|
|
```
|
|
|
|
---
|
|
|
|
### Task 5: Fix or replace broken Makefile
|
|
|
|
The `validate-config` target imports `src.config.Config` which doesn't exist. The Makefile also references `.venv/bin/python` (not Docker).
|
|
|
|
**File:** `Makefile`
|
|
|
|
- [ ] **Step 1: Rewrite Makefile**
|
|
|
|
Replace entire content with a minimal, working version:
|
|
|
|
```makefile
|
|
# Agnes AI Data Analyst — Development Makefile
|
|
|
|
.PHONY: help test lint dev docker
|
|
|
|
help:
|
|
@echo "Available targets:"
|
|
@echo " make test Run test suite"
|
|
@echo " make dev Start FastAPI dev server"
|
|
@echo " make docker Build and start Docker Compose"
|
|
@echo " make lint Run ruff linter (if installed)"
|
|
|
|
test:
|
|
pytest tests/ -v --tb=short
|
|
|
|
dev:
|
|
uvicorn app.main:app --reload
|
|
|
|
docker:
|
|
docker compose up --build
|
|
|
|
lint:
|
|
@ruff check . 2>/dev/null || echo "ruff not installed: pip install ruff"
|
|
```
|
|
|
|
- [ ] **Step 2: Run `make test`**
|
|
|
|
Run: `make test`
|
|
Expected: All tests pass
|
|
|
|
- [ ] **Step 3: Commit**
|
|
|
|
```bash
|
|
git add Makefile
|
|
git commit -m "fix: rewrite Makefile — remove broken validate-config, add working targets"
|
|
```
|
|
|
|
---
|
|
|
|
### Task 6: Update scripts/README.md
|
|
|
|
After deleting 10 scripts, the README should reflect what's left.
|
|
|
|
**File:** `scripts/README.md`
|
|
|
|
- [ ] **Step 1: Rewrite scripts/README.md**
|
|
|
|
```markdown
|
|
# Scripts
|
|
|
|
Utility and migration scripts for Agnes AI Data Analyst.
|
|
|
|
## Active Scripts
|
|
|
|
| Script | Purpose |
|
|
|--------|---------|
|
|
| `generate_sample_data.py` | Generate sample data for development/demo |
|
|
| `duckdb_manager.py` | DuckDB database management utilities |
|
|
| `init.sh` | Initial server setup (install deps, create dirs) |
|
|
|
|
## Migration Scripts (one-time use)
|
|
|
|
| Script | Purpose |
|
|
|--------|---------|
|
|
| `migrate_json_to_duckdb.py` | Migrate v1 JSON state files to DuckDB |
|
|
| `migrate_parquets_to_extracts.py` | Migrate v1 parquet layout to extract.duckdb |
|
|
| `migrate_registry_to_duckdb.py` | Migrate v1 table registry to DuckDB |
|
|
```
|
|
|
|
- [ ] **Step 2: Commit**
|
|
|
|
```bash
|
|
git add scripts/README.md
|
|
git commit -m "docs: update scripts/README.md after dead script cleanup"
|
|
```
|
|
|
|
---
|
|
|
|
## Execution Order
|
|
|
|
All tasks are independent except Task 6 (depends on Task 1).
|
|
|
|
Recommended: run sequentially (Task 1-6) for clean git history.
|
|
|
|
**Verification after all tasks:**
|
|
|
|
```bash
|
|
# Tests pass
|
|
pytest tests/ -v --tb=short
|
|
|
|
# No broken imports
|
|
python -c "from app.main import create_app; print('OK')"
|
|
|
|
# Makefile works
|
|
make test
|
|
```
|
|
|
|
## Summary
|
|
|
|
| Action | Files | Lines removed (est.) |
|
|
|--------|-------|---------------------|
|
|
| Dead scripts | 10 files | ~800 |
|
|
| Legacy config + llms.txt | 2 files | ~250 |
|
|
| Completed plans | 3 files | ~300 |
|
|
| Notification examples | 3 files | ~150 |
|
|
| Makefile rewrite | 1 file | ~60 (replaced) |
|
|
| scripts/README.md | 1 file | updated |
|
|
| **Total** | **19 files removed, 2 rewritten** | **~1,500 lines** |
|