## Summary Third major cleanup wave after investigating 287 remaining root files. Archived historical reports, organized documentation, removed regeneratable artifacts, and fixed critical security issue. ## Files Cleaned (119 total) - Archived: 78 files (7 WAVE reports + 71 summaries) → docs/archive/ - Archived: 7 build logs → docs/archive/build_logs/ - Organized: 10 markdown files → docs/guides/ + docs/checklists/ - Deleted: 17 test/coverage artifacts (regeneratable) - Deleted: 7 empty/obsolete files (docker override, clippy baselines) - Deleted: 3 large files (119MB - .venv, ppo_hyperopt_output.txt, backup) ## Space Recovered - Total: ~120.7 MB - Large files: 119.25 MB (.venv, ppo_hyperopt_output.txt) - Archives: 1.04 MB (summaries + build logs) - Test artifacts: 980 KB ## Security Fix (CRITICAL) - Fixed: certs/security.env removed from git tracking (contained JWT secrets) - Updated: .gitignore to prevent future tracking of sensitive cert files - Removed: 4 files from git history (security.env, production.env.template, *.serial) ## Documentation Organization - Created: docs/archive/ (wave_reports/, summaries/, build_logs/) - Created: docs/guides/ (7 detailed implementation guides) - Created: docs/checklists/ (3 operational checklists) - Retained: 30 essential .md files in root (quick refs, CLAUDE.md) ## Investigation Reports Created - MARKDOWN_ORGANIZATION_REPORT.md - TXT_FILES_INVENTORY_AND_ARCHIVAL_PLAN.md - ROOT_CONFIG_FILES_ANALYSIS_REPORT.md - DOCKER_ROOT_FILES_ANALYSIS.md - DATABASE_INITIALIZATION_AND_SETUP_ANALYSIS.md - (6 additional investigation/index files) ## Cleanup Wave Progress - Wave 1: 899 files deleted (1,071,884 lines) - Wave 2: 543 files archived/deleted (~34GB) - Wave 3: 119 files archived/deleted/organized (~121MB) - Total: 1,561 files cleaned, ~35.1GB space recovered ## Result Root directory: 287 files → ~180 files (excluding investigation reports) Clean, organized, production-ready structure maintained. Related: Second cleanup wave (previous commit)
13 KiB
Organization Findings - Executive Summary
Date: 2025-10-30 Investigator: Claude Code Analysis Agent Status: ✅ INVESTIGATION COMPLETE
Key Findings
1. Database Initialization Files
Location: Root directory
Files: init-db.sql (5.2K), init-db-dev.sql (659B)
Status: ✅ Properly located
init-db.sql- Creates databases, users, permissions (CRITICAL)init-db-dev.sql- Dev variant (calls init-db.sql + applies migrations)- Note: Neither file is referenced in docker-compose.yml. Verify usage before moving.
Recommendation: Keep in root; document when/how they're used.
2. Docker Dependencies
Critical Finding: 16 items referenced in volume mounts that CANNOT BE MOVED:
✅ certs/ (TLS certificates)
✅ checkpoints/ (Model checkpoints)
✅ config/ (Service configs)
✅ models/ (Model storage)
✅ optuna_studies/ (Hyperparameter data)
✅ test_data/ (Test datasets)
✅ tuning_config.yaml (ML hyperparameter config)
✅ docker-compose.yml (Service orchestration)
✅ Dockerfile.foxhunt-build (Production build)
Impact: If moved, Docker volume mounts will fail. DO NOT MOVE THESE.
3. Directory Organization Status
Well-Organized ✅:
migrations/- 45 SQL files (proper subdirectory)services/- Microservices (organized by function)ml/- ML models and training codescripts/- Automation scripts witharchive/subdirectoryconfig/- Service configuration files
Needs Improvement ⚠️:
- Root directory - Contains 500+ files (mostly analysis artifacts)
.cargo/- 7 config variants instead of 1-2sql/- Contains only 5 test files (can move to docs/)
Cluttered ❌:
- Root
.txtfiles - 400+ analysis/test result files scattered in root
4. Root File Inventory
By Category:
| Category | Count | Examples | Keep? |
|---|---|---|---|
| Rust Standards | 5 | Cargo.toml, rustfmt.toml, clippy.toml | ✅ YES |
| Docker Files | 4 | docker-compose.yml, Dockerfile.* | ✅ YES |
| CI/CD | 3 | .gitlab-ci.yml, Makefile | ✅ YES |
| Database Init | 2 | init-db.sql, init-db-dev.sql | ✅ YES |
| Git/Environment | 3 | .gitignore, .env, .env.* | ✅ YES |
| Build Configs | 10 | tarpaulin.toml, pytest.ini, mutants.toml | ⚠️ MOVE |
| Python Deps | 3 | requirements.txt, requirements-*.txt | ⚠️ MOVE |
| Analysis Artifacts | 400+ | .txt, WAVE_.txt, coverage_*.txt | ❌ ARCHIVE |
| Build Output | ~5GB | target/ directory | ✅ GITIGNORE |
Total Root Files: ~500+ (excessive) Critical to Keep: ~30 files (9%) Can/Should Move: ~470 files (91%)
5. .cargo/ Configuration Problem
Current State:
.cargo/
├── config.toml (57 lines) ✅ ACTIVE
├── config.toml.coverage (50 lines) - Unused?
├── config.toml.lld (52 lines) - Unused?
├── config.toml.optimized (110 lines) - Unused?
├── config.toml.original (50 lines) - Unused?
└── config.toml.runpod (57 lines) - Unused?
Total: 376 lines of mostly duplicate config
Recommendation:
- Keep only
.cargo/config.tomlas active - Archive variants to
docs/cargo-configs-archive/ - Use environment variables for build customization
- Document feature flags in
Cargo.toml
Effort: 15 minutes | Risk: ZERO
6. SQL File Organization
Current Structure:
Root:
├── init-db.sql ✅ (Database initialization)
├── init-db-dev.sql ✅ (Dev variant)
migrations/:
├── 001_*.sql ✅ (45 files, properly organized)
├── 002_*.sql
├── ...
└── 046_*.sql
sql/:
├── PAPER_TRADING_DIAGNOSTIC_QUERIES.sql ⚠️
├── paper_trading_schema.sql ⚠️
├── test_pg_performance.sql ⚠️
├── test_stop_loss_debug.sql ⚠️
└── trading_workload.sql ⚠️
Assessment:
- ✅ init-db.sql files correctly in root
- ✅ migrations/ correctly organized
- ⚠️ sql/ contains only test/diagnostic files (can move)
Recommendation: Move sql/ contents to docs/sql/diagnostics/
Effort: 10 minutes | Risk: ZERO
7. Analysis Artifacts Problem
Current State:
Root: ~400+ text files
├── WAVE112_AGENT10_SUMMARY.txt
├── WAVE113_AGENT25_QUICKREF.txt
├── coverage_api_gateway.txt
├── DB_LOAD_TEST_RESULTS_20251012_012011.txt
├── DEPLOYMENT_STATUS.txt
├── ...and 400+ more
Total Size: ~10-20MB (relatively small files)
Impact: Makes root directory unreadable/unmaintainable
Recommendation: Archive to artifacts/ organized by date
artifacts/
├── 2025-10-30/
│ ├── WAVE*.txt
│ ├── coverage_*.txt
│ ├── DB_LOAD_TEST_*.txt
│ └── etc.
├── 2025-10-29/
└── 2025-10-28/
Effort: 5 minutes | Risk: ZERO
8. Rust/Cargo Standards
Files That MUST Stay in Root (Rust convention):
✅ Cargo.toml # Workspace manifest (REQUIRED)
✅ Cargo.lock # Dependency lock (REQUIRED)
✅ .cargo/ # Cargo config directory (REQUIRED)
✅ rustfmt.toml # Code formatting (REQUIRED BY TOOL)
✅ clippy.toml # Linting rules (REQUIRED BY TOOL)
Why: These are Rust/Cargo standards. Tools look for them in root by default.
9. Docker Dependency Mapping
Files Referenced in docker-compose.yml:
volumes:
- ./certs:/tmp/foxhunt/certs:ro ← CRITICAL
- ./checkpoints:/tmp/foxhunt/checkpoints ← CRITICAL
- ./config/grafana/dashboards:... ← CRITICAL
- ./config/prometheus/prometheus.yml:... ← CRITICAL
- ./models:/tmp/foxhunt/models ← CRITICAL
- ./optuna_studies:/app/optuna_studies ← CRITICAL
- ./test_data:/workspace/test_data:ro ← CRITICAL
- ./tuning_config.yaml:/app/tuning_config.yaml:ro ← CRITICAL
Impact: Moving these paths breaks Docker. Update volume mounts if moved.
10. Migration Safety Assessment
| Operation | Files | Risk | Docker Impact | Effort |
|---|---|---|---|---|
| Archive .txt → artifacts/ | 400+ | ✅ ZERO | None | 5 min |
| Move sql/ → docs/sql/diagnostics/ | 5 | ✅ ZERO | None | 10 min |
| Archive .cargo variants | 6 | ✅ ZERO | None | 5 min |
| Move pytest/tarpaulin configs | 3 | ⚠️ LOW | None* | 15 min |
| Move Python requirements | 3 | ⚠️ LOW | None* | 15 min |
| Move tuning config backups | 2 | ⚠️ LOW | None* | 5 min |
| Total Phase 1 (SAFE) | 415+ | ✅ ZERO | ✅ NONE | 20 min |
| Total Phase 2 (OPTIONAL) | 8 | ⚠️ LOW | ✅ NONE* | 35 min |
| Total Both Phases | 423+ | ⚠️ LOW | ✅ NONE* | 55 min |
*Requires CI/CD reference updates, but no Docker impact
Recommendations (Prioritized)
PRIORITY 1: IMMEDIATE CLEANUP (Execute Now)
Risk: ✅ ZERO | Time: 20 minutes | Impact: 90% root clutter reduction
- Archive 400+
.txtanalysis files →artifacts/YYYY-MM-DD/ - Move 5 SQL diagnostics →
docs/sql/diagnostics/ - Archive 6
.cargo/config.toml.*variants →docs/cargo-configs-archive/
Status: ✅ SAFE TO EXECUTE NOW
PRIORITY 2: OPTIONAL IMPROVEMENTS (Execute Next Week)
Risk: ⚠️ LOW | Time: 35 minutes | Impact: Better file organization
- Move
pytest.ini,tarpaulin.toml,mutants.toml→config/testing/ - Move
tuning_config_ppo_*.yaml,TFT_TUNING_*.yaml→config/ml/tuning/archive/ - Update CI/CD references for moved files
Status: ⏳ DOCUMENT BEFORE EXECUTING
PRIORITY 3: FUTURE CONSOLIDATION (Backlog)
Risk: ⚠️ MEDIUM | Time: 2-3 hours | Impact: Developer workflow improvement
- Consolidate
Makefile+justfile(choose one) - Document/deprecate
init-db-dev.sqlif migrations sufficient - Move
.venv/out ofscripts/directory (takes 88M) - Consolidate
requirements*.txttoconfig/python/
Status: 📅 FUTURE - Not urgent
Implementation Plan
Phase 1 (DO NOW - 20 minutes)
# Create archive directory
mkdir -p artifacts/$(date +%Y-%m-%d)
# Archive analysis files
find . -maxdepth 1 -name "*.txt" -type f \
-exec mv {} artifacts/$(date +%Y-%m-%d)/ \;
# Move SQL diagnostics
mkdir -p docs/sql/diagnostics
mv sql/*.sql docs/sql/diagnostics/ 2>/dev/null || true
rmdir sql 2>/dev/null || true
# Archive .cargo variants
mkdir -p docs/cargo-configs-archive
mv .cargo/config.toml.* docs/cargo-configs-archive/ 2>/dev/null || true
Validation:
# Verify nothing broke
docker-compose config # Should have no errors
cargo check # Should compile fine
git status | head -20 # See what changed
Phase 2 (NEXT WEEK - 35 minutes)
Update CI/CD references, then move:
pytest.ini→config/testing/tarpaulin.toml→config/testing/mutants.toml→config/testing/- Tuning config backups →
config/ml/tuning/archive/
Phase 3 (BACKLOG - 2-3 hours)
Consolidate build tools and optimize venv placement.
Risk Summary
| Risk Type | Likelihood | Impact | Mitigation |
|---|---|---|---|
| Docker breakage | ✅ NONE (follow guidelines) | CRITICAL | Don't move Docker mounts |
| Build failure | ✅ NONE (keep Rust standards) | HIGH | Don't move Cargo/rustfmt/clippy |
| CI/CD breakage | ⚠️ LOW (update references) | MEDIUM | Update .gitlab-ci.yml, Makefile |
| Data loss | ✅ NONE (just moving files) | LOW | Backup before starting |
Overall Risk: ✅ VERY LOW for Phase 1, ⚠️ LOW for Phase 2
Expected Outcomes
After Phase 1 (20 min cleanup)
Before:
foxhunt/ (500+ files)
├── *.txt (400+ files) 👈 CLUTTER
├── sql/ (5 files) 👈 CAN MOVE
├── .cargo/ (7 files) 👈 VARIANTS
└── ...
After:
foxhunt/ (100 files) ✅ CLEAN
├── certs/, config/, models/ (Docker mounts)
├── migrations/, services/, ml/ (Code)
├── scripts/, docs/, tests/ (Utilities)
├── artifacts/ (Analysis backups)
└── ... (20 critical files)
Impact: Root directory goes from unreadable to maintainable.
Files Summary by Location
KEEP IN ROOT (20-30 files)
.cargo/ # Cargo config (standard location)
.gitlab-ci.yml # CI/CD
.gitignore # Git
.env, .env.example # Environment
certs/, config/, models/ # Docker mounts
checkpoints/, optuna_studies/ # Docker mounts
test_data/ # Docker mount
tuning_config.yaml # Docker mount
Cargo.toml, Cargo.lock # Cargo manifest
Dockerfile.foxhunt-build # Production build
docker-compose.yml # Services
init-db.sql # Database init
Makefile # Build targets
rustfmt.toml # Code formatting
clippy.toml # Linting
sqlx-data.json # SQLx offline
MOVE TO ARCHIVES (414+ files)
artifacts/YYYY-MM-DD/ # 400+ .txt files
docs/sql/diagnostics/ # 5 SQL test files
docs/cargo-configs-archive/ # 6 .cargo variants
config/testing/ # 3 test configs
config/ml/tuning/archive/ # 2 backup configs
Validation Checklist
Before executing Phase 1:
- Read full analysis:
DATABASE_INITIALIZATION_AND_SETUP_ANALYSIS.md - Review Docker mounts:
docker-compose.ymlvolume section - Backup critical files:
git commit -m "Backup before cleanup" - Test Docker:
docker-compose config - Test build:
cargo check
After Phase 1:
- Verify no broken Docker mounts
- Verify build still works
- Verify tests pass:
cargo test - Commit changes:
git add . && git commit -m "docs: Clean up root directory clutter" - Update CLAUDE.md with new structure
Related Documentation
-
DATABASE_INITIALIZATION_AND_SETUP_ANALYSIS.md (15 sections, 500+ lines)
- Complete detailed analysis of all files
- Risk assessments
- Implementation timeline
-
DATABASE_INITIALIZATION_QUICK_REFERENCE.md (Quick lookup)
- TL;DR summary
- Migration checklist
- Risk assessment table
-
This Document (Executive summary)
- Key findings
- Prioritized recommendations
- Implementation plan
Conclusion
The Foxhunt project has excellent code organization by domain (services/, ml/, trading_engine/, etc.). The only issue is accumulated analysis artifacts (400+ .txt files) and unused configuration variants (7x .cargo/ configs) cluttering the root.
Recommended Action: Execute Phase 1 (20-minute cleanup) immediately. It's safe, reduces root clutter by 90%, and requires zero Docker/build changes.
Expected Effort:
- Phase 1: 20 minutes (SAFE NOW)
- Phase 2: 35 minutes (NEXT WEEK)
- Phase 3: 2-3 hours (FUTURE BACKLOG)
Risk Level: ✅ VERY LOW (Phase 1) to ⚠️ LOW (Phase 2)
Docker Impact: ✅ ZERO (if guidelines followed)
Generated: 2025-10-30 by Claude Code Analysis Agent Status: ✅ READY TO IMPLEMENT