59 lines
2.5 KiB
Markdown
59 lines
2.5 KiB
Markdown
# Iterative Fix-Verify Loop for Presentation QA
|
|
|
|
Pattern for achieving zero-defect presentations through repeated visual QA cycles.
|
|
Derived from a 17-slide deck QA session (5 cycles, 6 issues → 0 issues).
|
|
|
|
## The Loop
|
|
|
|
```
|
|
┌─────────────────────────────────────────┐
|
|
│ 1. GENERATE → node main.js │
|
|
│ 2. RENDER → soffice → pdftoppm │
|
|
│ 3. BATCH QA → batch_vision_qa.py │
|
|
│ 4. TARGETED → vision_analyze (deep) │
|
|
│ 5. FIX → patch source files │
|
|
│ 6. REPEAT 2-5 until ALL CLEAN │
|
|
└─────────────────────────────────────────┘
|
|
```
|
|
|
|
## Cycle Progression (Real Example)
|
|
|
|
| Cycle | Issues Found | Action | Remaining |
|
|
|-------|-------------|--------|-----------|
|
|
| 1 | 1 (batch) + 6 (targeted) | Fixed all 6 | 3 remaining |
|
|
| 2 | 3 (targeted) | Fixed all 3 | 1 remaining |
|
|
| 3 | 1 (targeted) | Fixed | 1 remaining |
|
|
| 4 | 1 (targeted) | Fixed | 0 |
|
|
| 5 | 0 (full batch) | Done | 0 ✅ |
|
|
|
|
## Why Multiple Cycles Are Needed
|
|
|
|
Fixes introduce new problems:
|
|
- Moving a subtitle down to fix overlap may push it into content below
|
|
- Enlarging a badge circle may overlap neighboring elements
|
|
- Changing line color for visibility may reduce contrast with another element
|
|
- Shortening a label to prevent wrapping may lose meaning
|
|
|
|
**Never declare success after the first fix-and-verify.** Always re-render and re-QA.
|
|
|
|
## Batch + Targeted Prompt Division
|
|
|
|
### Batch Prompt (Tier 1 — Breadth)
|
|
Generic, checks all slides quickly (~25s for 17 slides). Uses expanded 6-category prompt:
|
|
overlap, overflow, contrast, layout, content, symbols.
|
|
|
|
### Targeted Prompts (Tier 2 — Depth)
|
|
Element-specific questions for slides with:
|
|
- **Diagrams**: "Are the connecting lines visible? What color?"
|
|
- **Badges/icons**: "Do the letters inside circles render correctly?"
|
|
- **Tables**: "Are all cells populated? Any placeholder text?"
|
|
- **Examples**: "Does the example value match the description?"
|
|
- **Arrows/connectors**: "Do arrows render properly between elements?"
|
|
|
|
## Efficiency Tips
|
|
|
|
- Only re-render and re-QA slides that were changed (not the entire deck)
|
|
- But ALWAYS do a full batch scan at the end to confirm no regressions
|
|
- Batch QA via direct API calls is 10-20x faster than sequential vision_analyze calls
|
|
- Save QA results to JSON for comparison between cycles
|