## Summary Implements forge cleanup tools and documentation as requested in issue #1128. ## Changes - scripts/cleanup-duplicate-prs.sh: Automated duplicate PR detection - docs/forge-cleanup-analysis.md: Analysis of duplicate PRs - docs/forge-cleanup-report.md: Cleanup report with metrics - .github/workflows/pr-duplicate-check.yml: Weekly automated checks Issue: #1128
3.7 KiB
3.7 KiB
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
- Branch:
- PR #1388:
fix: remove duplicate content blocks from page- Branch:
burn/1338-1776120221 - Created: 2026-04-13T22:55:30Z
- Status: No reviews
- Branch:
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
- Branch:
- 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
- Branch:
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
- Branch:
- PR #1382:
fix: ChatLog.log() crash on message persistence (#1349)- Branch:
burn/1349-1776120221 - Created: 2026-04-13T22:50:07Z
- Status: No reviews
- Branch:
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
- Branch:
- PR #1381:
fix(#1356): ThreadingHTTPServer concurrency fix for multi-user bridge- Branch:
burn/1356-1776120221 - Created: 2026-04-13T22:47:45Z
- Status: No reviews
- Branch:
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
docs/pr-duplicate-detection.md- Policy for detecting duplicate PRsscripts/cleanup-duplicate-prs.sh- Script to identify and close duplicate PRs.github/workflows/pr-duplicate-check.yml- GitHub Action for duplicate detection
Next Steps
- Close identified duplicate PRs
- Address review comments on PRs with REQUEST_CHANGES
- Merge approved PRs
- Implement duplicate prevention policies
- Update issue #1128 with cleanup results