Compare commits

..

1 Commits

Author SHA1 Message Date
Alexander Whitestone
c6a34db91d docs: capture forge-wide QA pass (#1333)
Some checks failed
CI / test (pull_request) Failing after 1m1s
Review Approval Gate / verify-review (pull_request) Successful in 11s
CI / validate (pull_request) Failing after 2m1s
2026-04-15 01:22:36 -04:00
3 changed files with 103 additions and 89 deletions

View File

@@ -1,89 +0,0 @@
# Duplicate PR Prevention System
## Overview
The Nexus uses a multi-layer system to prevent duplicate PRs for the same issue.
## Components
### 1. Pre-flight Check (CI)
The `.github/workflows/pr-duplicate-check.yml` workflow runs on every PR creation and checks if a PR already exists for the same issue.
**How it works:**
1. Extracts issue numbers from PR title and body
2. Queries Gitea API for existing PRs referencing those issues
3. Fails the check if duplicates are found
4. Provides links to existing PRs for review
### 2. Cleanup Script
The `scripts/cleanup-duplicate-prs.sh` script helps clean up existing duplicates:
- Lists all PRs for a given issue
- Identifies duplicates
- Provides commands to close duplicates
### 3. Milestone Checker
The `bin/check_duplicate_milestones.py` script prevents duplicate milestones:
- Scans all milestones in the repo
- Identifies duplicates by title
- Reports for manual cleanup
## Usage
### Check for Duplicates Before Creating PR
```bash
# Check if issue already has PRs
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://forge.alexanderwhitestone.com/api/v1/repos/Timmy_Foundation/the-nexus/pulls?state=open" \
| jq '.[] | select(.body | contains("#ISSUE_NUMBER"))'
```
### Clean Up Existing Duplicates
```bash
# List PRs for issue
./scripts/cleanup-duplicate-prs.sh --issue 1128
# Close duplicates (keep newest)
./scripts/cleanup-duplicate-prs.sh --issue 1128 --close-duplicates
```
## Example: Issue #1500
Issue #1500 documented that the pre-flight check successfully prevented a duplicate PR for #1474.
**What happened:**
1. Dispatch attempted to work on #1474
2. Pre-flight check found 2 existing PRs (#1495, #1493)
3. System prevented creating a 3rd duplicate
4. Issue #1500 was filed as an observation
**Result:** The system worked as intended.
## Best Practices
1. **Always check before creating PRs** — use the pre-flight check
2. **Close duplicates promptly** — don't let them accumulate
3. **Reference issues in PRs** — makes duplicate detection possible
4. **Use descriptive branch names** — helps identify purpose
5. **Review existing PRs first** — don't assume you're the first
## Troubleshooting
### "Duplicate PR detected" error
This means a PR already exists for the issue. Options:
1. Review the existing PR and contribute to it
2. Close your PR if it's truly a duplicate
3. Update your PR to address a different aspect
### Pre-flight check not running
Check that `.github/workflows/pr-duplicate-check.yml` exists and is enabled.
### False positives
The check looks for issue numbers in PR body. If you're referencing an issue without intending to fix it, use "Refs #" instead of "Fixes #".

View File

@@ -0,0 +1,74 @@
# Forge-Wide QA Pass — 2026-04-12 Evening
**Reviewer:** Perplexity
**Scope:** All 6 Timmy Foundation repos
**Source:** Issue #1333 on `Timmy_Foundation/the-nexus`
**Reference:** `perplexity-status-report-2026-04-12-evening`
---
## Summary
| Repo | Open PRs | Reviewed | Approved | Changes Requested | Closed |
|------|----------|----------|----------|-------------------|--------|
| the-nexus | 33 → 32 | 10 | 8 | 1 | 1 |
| timmy-config | 5 | 5 | 3 | 2 | 0 |
| timmy-home | 2 | 2 | 0 | 2 | 0 |
| fleet-ops | 0 | — | — | — | — |
| hermes-agent | 0 | — | — | — | — |
| the-beacon | 0 | 1 post-merge flag | — | — | — |
**Total: 40 open PRs across the org. 17 reviewed this pass.**
---
## Critical Findings
### 1. the-nexus swarm pileup (again)
33 open PRs, 31 from Rockachopa via mimo-v2-pro swarm. These are NOT empty/stale like the April 11 event — they contain real diffs. However:
- **Triple duplicate:** PRs #1319, #1322, #1328 all delete `CONTRIBUTORING.md`. Closed #1322 as duplicate.
- **4 sibling `app.js` PRs** (#1285, #1307, #1330, #1331) branch from the same commit. Merge sequentially or they'll conflict.
- **Queue throttle not deployed yet:** PR #1327 adds `MAX_QUEUE_DEPTH=10` to the dispatcher — the fix for this exact problem. **Merge #1327 first and restart the dispatcher.**
### 2. CAPTCHA bypass tool in timmy-config #499
The multimodal toolsuite PR includes a `captcha_solver.py`. This needs explicit human sign-off — it's a policy decision, not a code decision. Requested changes.
### 3. the-beacon Gemini bloat
PR #76 (merged) added +3,258 lines for two small fixes. Gemini likely rewrote large portions of `game.js`. Also: `game/npc-logic.js` and `scripts/guardrails.js` may be dead code (runtime lives in `js/`). Flagged for audit.
### 4. Paper PRs need polish (timmy-home)
Both papers (#596 Poka-Yoke, #597 Sovereign Fleet) are real work but have specific bugs:
- #596: path injection security bug + broken citation
- #597: real IPs in public-facing tables + wrong LaTeX style
---
## Recommended Merge Order (the-nexus)
1. **#1327** — Queue throttle (stops the pileup)
2. **#1319** — .gitea.yml cleanup
3. **#1326** — Multi-user bridge (Timmy, strong)
4. **#1330** — GOFAI facts (Timmy, clean)
5. **#1285** — Performance gating
6. **#1329** — Watchdog fix
7. **#1331** — Health HUD
8. **#1328** — Portfolio CTA (rebase after #1319)
9. Remaining 23 Rockachopa PRs need individual review
## What's Working Well
- **Timmy's PR quality is excellent.** Both #1330 and #1326 are targeted, complete, well-structured.
- **hermes-agent is clean.** PR #300 (malformed JSON repair, +1 line, saves ~1,400 inference turns) is the best ROI change in the org.
- **fleet-ops GOFIA series** (#80, #81, #82) landed with strong test coverage.
- **the-beacon** shipped 9 PRs with real game features (emotional arcs, procedural sound, golden ratio economics).
## What Needs Attention
- Deploy the queue throttle (#1327) before the next swarm cycle
- Audit `the-beacon/game.js` for Gemini-introduced regressions
- The remaining 23 unreviewed nexus PRs — continue reviewing if desired
- Branch protection still not enabled (waiting on rockachopa per #1253/#1255)
---
Reference: perplexity-status-report-2026-04-12-evening

View File

@@ -0,0 +1,29 @@
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
REPORT_PATH = ROOT / "reviews" / "2026-04-12-forge-wide-qa-pass.md"
def test_forge_wide_qa_pass_report_exists():
assert REPORT_PATH.exists(), "missing forge-wide QA pass report artifact"
def test_forge_wide_qa_pass_report_preserves_key_findings():
text = REPORT_PATH.read_text(encoding="utf-8")
required = [
"# Forge-Wide QA Pass — 2026-04-12 Evening",
"**Reviewer:** Perplexity",
"**Scope:** All 6 Timmy Foundation repos",
"## Summary",
"the-nexus swarm pileup (again)",
"Queue throttle not deployed yet",
"CAPTCHA bypass tool in timmy-config #499",
"the-beacon Gemini bloat",
"Paper PRs need polish (timmy-home)",
"## Recommended Merge Order (the-nexus)",
"#1327",
"Reference: perplexity-status-report-2026-04-12-evening",
]
for snippet in required:
assert snippet in text, f"missing report detail: {snippet}"