# Forge Cleanup Analysis — Issue #1128 ## Summary This document analyzes the current state of open PRs in the-nexus repository and identifies cleanup actions needed. ## Current State - **Total Open PRs**: 14 - **Duplicate PR Groups**: 4 groups with 2 PRs each (8 PRs total) - **PRs with Review Issues**: 4 PRs with REQUEST_CHANGES - **Approved PRs**: 1 PR approved but not merged ## Duplicate PR Analysis ### Group 1: Issue #1338 (Remove duplicate content blocks) - **PR #1392**: `fix: remove duplicate content blocks from README.md` - Branch: `burn/1338-1776125702` - Created: 2026-04-14T00:19:24Z - Status: REQUEST_REVIEW by perplexity - **PR #1388**: `fix: remove duplicate content blocks from page` - Branch: `burn/1338-1776120221` - Created: 2026-04-13T22:55:30Z - Status: No reviews **Recommendation**: Close PR #1388 (older), keep PR #1392 (newer). ### Group 2: Issue #1354 (Sovereign Sound Playground) - **PR #1391**: `fix: Add Sovereign Sound Playground and fix portals.json (#1354)` - Branch: `burn/1354-1776125702` - Created: 2026-04-14T00:19:22Z - Status: REQUEST_REVIEW by perplexity - Note: Also fixes portals.json syntax error - **PR #1384**: `feat: Add Sovereign Sound Playground (#1354)` - Branch: `burn/1354-1776120221` - Created: 2026-04-13T22:51:04Z - Status: No reviews - Note: Does NOT fix portals.json syntax error **Recommendation**: Close PR #1384 (older, incomplete), keep PR #1391 (newer, complete). ### Group 3: Issue #1349 (ChatLog.log() crash) - **PR #1390**: `fix: ChatLog.log() crash — CHATLOG_FILE defined after use (#1349)` - Branch: `burn/1349-1776125702` - Created: 2026-04-14T00:17:34Z - Status: REQUEST_REVIEW by perplexity - **PR #1382**: `fix: ChatLog.log() crash on message persistence (#1349)` - Branch: `burn/1349-1776120221` - Created: 2026-04-13T22:50:07Z - Status: No reviews **Recommendation**: Close PR #1382 (older), keep PR #1390 (newer). ### Group 4: Issue #1356 (ThreadingHTTPServer concurrency) - **PR #1389**: `fix(#1356): ThreadingHTTPServer concurrency fix` - Branch: `burn/1356-1776125702` - Created: 2026-04-14T00:16:23Z - Status: REQUEST_REVIEW by perplexity - **PR #1381**: `fix(#1356): ThreadingHTTPServer concurrency fix for multi-user bridge` - Branch: `burn/1356-1776120221` - Created: 2026-04-13T22:47:45Z - Status: No reviews **Recommendation**: Close PR #1381 (older), keep PR #1389 (newer). ## Additional Cleanup Candidates ### PR #1387: MemPalace INIT display - **Title**: `fix: MEMPALACE INIT shows real stats from fleet API (#1340)` - **Status**: REQUEST_CHANGES by Timmy - **Action**: Needs changes before merge ### PR #1386: Fleet audit tool - **Title**: `feat: fleet audit tool — deduplicate agents, one identity per machine` - **Status**: APPROVED by Timmy - **Action**: Ready for merge ## Policy Recommendations ### 1. Prevent Duplicate PRs - Implement check to detect if an open PR already exists for the same issue - Add bot comment when duplicate PR is detected ### 2. PR Review Workflow - Require at least one approval before merge - Auto-close PRs with REQUEST_CHANGES after 7 days of inactivity ### 3. Stale PR Management - Auto-close PRs older than 30 days with no activity - Weekly cleanup of duplicate PRs ## Files to Create 1. `docs/pr-duplicate-detection.md` - Policy for detecting duplicate PRs 2. `scripts/cleanup-duplicate-prs.sh` - Script to identify and close duplicate PRs 3. `.github/workflows/pr-duplicate-check.yml` - GitHub Action for duplicate detection ## Next Steps 1. Close identified duplicate PRs 2. Address review comments on PRs with REQUEST_CHANGES 3. Merge approved PRs 4. Implement duplicate prevention policies 5. Update issue #1128 with cleanup results