Re-run QA on decks that were previously reviewed but have not yet PASSED. Re-runs games, re-reviews logs, and promotes to PASSED or keeps HAS_ISSUES.
Re-runs the full QA pipeline on decks that have been AI-reviewed but still have status HAS_ISSUES in results/qa_index.json. These are decks where issues were found, fixes were applied, and now need re-verification.
A deck is promoted to PASSED when AI review finds zero CRITICAL or MAJOR issues.
Processes 5 decks per run (or fewer if less than 5 remain).
results/qa_index.jsonstatus: "HAS_ISSUES" AND aiReviewed: truedocs/PRECON_QA_ISSUES.md for any FIXED or WONT_FIX issues that haven't been archived yet. If issues exist for decks already marked PASSED (or any status), include those decks for re-verification and archival.Optional: --deck <id> to target a specific deck.
For each deck (5 max), run 5 games with --qa flag:
node scripts/run_precon_tests.js --qa --games 5 --deck decks/precons/<deck_file>.txt
Find deck files by scanning decks/precons/*.txt for filenames matching the deck ID.
Run all decks sequentially before moving to next step.
For each deck:
node scripts/qa_gate_check.cjs --deck <deck_id>
Record gate results but do NOT skip AI review for failures. Gates are informational.
For each deck:
node scripts/prepare_qa_logs.cjs --deck <deck_id>
Creates results/qa_review/<deck_id>/game_1.md through game_N.md.
For each deck, read results/qa_review/<deck_id>/_summary.md then each game_N.md.
Focus the review on the PREVIOUSLY REPORTED issues for this deck. Check docs/PRECON_QA_ISSUES.md for the deck's prior issues (now status FIXED) and verify they no longer appear.
Also scan for any NEW issues using the standard 4 criteria:
Skip detailed analysis of repeated ability activations (e.g., 20x PUMP lines). Just note the pattern if it looks wrong.
When a prior issue is confirmed fixed during re-review, move it from docs/PRECON_QA_ISSUES.md to docs/PRECON_QA_ISSUES_ARCHIVE.md:
## QA-NNN through the end of its content) from PRECON_QA_ISSUES.mdPRECON_QA_ISSUES_ARCHIVE.md (create the file if it doesn't exist)PRECON_QA_ISSUES.md (decrement FIXED count, keep total accurate for active issues only)This keeps PRECON_QA_ISSUES.md clean — it should only contain OPEN and IN_PROGRESS issues.
The archive file header (create if missing):
# Precon QA Issues — Archive
Resolved issues moved here from `PRECON_QA_ISSUES.md` after verification.
Issues are append-only. Do not edit archived issues.
---
For each deck:
If NEW issues are found (not previously reported), append to docs/PRECON_QA_ISSUES.md using the standard format:
## QA-NNN
- **Status**: OPEN
- **Deck**: <deck_id>
- **Commander**: <commander_name>
- **Game/Turn**: Game N, Turn M
- **Category**: <LEGAL_MAGIC|DECK_STRATEGY|BATTLEFIELD_ACTIVATION|INTELLIGENT_PLAY>
- **Severity**: <CRITICAL|MAJOR|MINOR>
- **Summary**: <one-line description>
- **Evidence**:
- Turn X: <what happened>
- Turn Y: <what should have happened>
- **Root Cause**: TBD
- **Fix**: TBD
- **Verified**: TBD
Update the Summary counts table.
Update results/qa_index.json for each deck:
status: "PASSED", clear issues: []status: "HAS_ISSUES", update issues array with new issue IDslastChecked to today's datesummary with fresh statisticsgates with fresh gate resultsAppend to Changelog in docs/PRECON_QA_PROCESS.md:
### Rerun: <deck_id> (YYYY-MM-DD)
- Previous status: HAS_ISSUES (issues: QA-NNN, QA-NNN)
- New status: PASSED / HAS_ISSUES
- Prior issues verified fixed: [list]
- New issues found: [list or "none"]
QA Rerun: N decks re-reviewed
<deck_1>: HAS_ISSUES -> PASSED / HAS_ISSUES
<deck_2>: HAS_ISSUES -> PASSED / HAS_ISSUES
...
Prior issues verified fixed: X/Y
New issues found: N (X critical, Y major, Z minor)
Progress: N/202 PASSED (X.X%)
Remaining HAS_ISSUES: N decks
| File | Purpose |
|---|---|
results/qa_index.json | Master QA progress tracker (source of truth for status) |
results/precons/<deck_id>.json | Test results with statistics |
results/qa_review/<deck_id>/ | Prepared game logs for AI review |
docs/PRECON_QA_ISSUES.md | Active issues only (OPEN, IN_PROGRESS) |
docs/PRECON_QA_ISSUES_ARCHIVE.md | Resolved issues (FIXED, WONT_FIX) — append-only |
docs/PRECON_QA_PROCESS.md | Process docs + changelog |
scripts/qa_gate_check.cjs | Automated gate evaluation |
scripts/prepare_qa_logs.cjs | Log preparation for AI review |
scripts/run_precon_tests.js | Test runner (use --qa flag) |
NEVER use inline node -e or complex bash one-liners. Write .temp/lookup_qa.cjs scripts instead.