Files
Redflag/docs/historical/DEC20_CLEANUP_PLAN.md

194 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RedFlag v0.1.27 Cleanup Plan
**Date**: December 20, 2025
**Action Date**: December 20, 2025
**Status**: Implementation Ready
---
## Executive Summary
Based on definitive code forensics, we need to clean up the RedFlag repository to align with ETHOS principles and proper Go project conventions.
**Critical Finding**: Multiple development tools and misleading naming conventions clutter the repository with files that are either unused, duplicates, or improperly located.
**Impact**: These files create confusion, violate Go project conventions, and clutter the repository root without providing value.
---
## Definitive Findings (Evidence-Based)
### 1. Build Process Analysis
**Scripts/Build Files**:
- `scripts/build-secure-agent.sh` - **USED** (by Makefile, line 30)
- `scripts/generate-keypair.go` - **NOT USED** (manual utility, no references)
- `cmd/tools/keygen/main.go` - **NOT USED** (manual utility, no references)
**Findings**:
- The build process does NOT generate keys during compilation
- Keys are generated during initial server setup (web UI) and stored in environment
- Both Makefile targets do identical operations (no difference between "simple" and "secure")
- Agent build is just `go build` with no special flags or key embedding
### 2. Key Generation During Setup
**Setup Process**:
- **YES**, keys are generated during server initial setup at `/api/setup/generate-keys`
- **Location**: `aggregator-server/internal/api/handlers/setup.go:469`
```go
publicKey, privateKey, err := ed25519.GenerateKey(rand.Reader)
```
- **Purpose**: Server setup page generates keys and user copies them to `.env`
- **Semi-manual**: It's the **only** manual step in entire setup process
### 3. Keygen Tool Purpose
**What it is**: Standalone utility to extract public key from private key
**Used**: **NOWHERE** - Not referenced anywhere in automated build/setup
**Should be removed**: Yes - clutters cmd/ structure without providing value
### 4. Repository Structure Issues
**Current**:
```
Root:
├── scripts/
│ └── generate-keypair.go (UNUSED - should be removed)
└── cmd/tools/
└── keygen/main.go (UNUSED - should be removed)
```
**Problems**:
1. Root-level `cmd/tools/` creates unnecessary subdirectory depth
2. `generate-keypair.go` clutters root with unused file
3. Files not following Go conventions
---
## Actions Required
### REMOVE (4 items)
**1. REMOVE `/home/casey/Projects/RedFlag/scripts/generate-keypair.go`**
- **Reason**: Not used anywhere in codebase (definitive find - no references)
- **Impact**: None - nothing references this file
**2. REMOVE `/home/casey/Projects/RedFlag/cmd/tools/` directory**
- **Reason**: Contains only `keygen/main.go` which is not used
- **Impact**: Removes unused utility that clutters cmd/ structure
**3. REMOVE `/home/casey/Projects/RedFlag/cmd/tools/` (empty after removal)**
**4. REMOVE `/home/casey/Projects/RedFlag/scripts/generate-keypair.go`** already done above
### MODIFY (1 file)
**5. MODIFY `/home/casey/Projects/RedFlag/scripts/build-secure-agent.sh`**
**Reason**: Uses emojis (🔨, ✅, ) - violates ETHOS #5
**Changes**:
- Remove line 13: 🔨 emoji
- Remove line 19: ✅ emoji
- Remove line 21: emoji
- Replace with: `[INFO] [build] Building agent...` etc.
### KEEP (2 items)
**6. KEEP `/home/casey/Projects/RedFlag/scripts/`**
- **Reason**: Contains `build-secure-agent.sh` which is actually used (referenced in Makefile)
- **Note**: Should only contain shell scripts, not Go utilities
**7. KEEP `/home/casey/Projects/RedFlag/scripts/build-secure-agent.sh`**
- **Reason**: Actually used in Makefile line 30
- **Note**: Must be fixed per item #5
---
## Post-Cleanup Repository Structure
### Root Level (Clean)
```
RedFlag/
├── aggregator-agent/ (Agent code - production)
├── aggregator-server/ (Server code - production)
├── aggregator-web/ (Web dashboard - production)
├── cmd/ (CLI tools - production only)
├── scripts/ (Build scripts ONLY)
│ └── build-secure-agent.sh (USED by Makefile - MUST FIX)
├── docs/ (Documentation)
├── Makefile (Build orchestration)
├── .gitignore (Comprehensive)
├── docker-compose.yml (Docker orchestration)
├── LICENSE (MIT)
├── README.md (Updated plan)
└── DEC20_CLEANUP_PLAN.md (This document)
```
**Key Principles**:
- Only production code in root
- Build scripts in `scripts/`
- CLI tools in `cmd/` (if used)
- No development artifacts
- ETHOS compliant throughout
---
## Implementation Steps
### Step 1: Remove Unused Files
```bash
cd /home/casey/Projects/RedFlag
# Remove from git tracking (keep locally with --cached)
git rm --cached scripts/generate-keypair.go
git rm --cached -r cmd/tools/
```
### Step 2: Fix build-secure-agent.sh Ethos Violations
```bash
# Edit scripts/build-secure-agent.sh
# Remove lines 13, 19, 21 (remove emojis)
# Replace with proper logging format
```
### Step 3: Commit and Push
```bash
git commit -m "cleanup: Remove unused files, fix ETHOS violations"
git push https://Fimeg:YOUR_TOKEN@codeberg.org/Fimeg/RedFlag.git feature/agent-subsystems-logging --force
```
---
## Verification Plan
1. **Check no references remain**:
```bash
git ls-tree -r HEAD | grep -E "(generate-keypair|cmd/tools)" || echo "Clean"
```
2. **Verify build still works**:
```bash
make -f aggregator-server/Makefile build-agent-simple
```
3. **Verify .gitignore updated**:
```bash
git check-attr .gitignore
```
---
## Next Steps
**After Cleanup**:
1. Test v0.1.27 functionality (migrations, rapid scanning)
2. Tag release v0.1.27
3. Update documentation to reflect cleanup
4. Continue with v0.1.28 roadmap
**Timeline**: Complete today, December 20, 2025
---
**Prepared by**: Casey Tunturi (RedFlag Author)
**Based on**: Definitive code forensics and ETHOS principles
**Status**: Ready for implementation