# Round 03.1 Patch Matrix

| GPT / Owner instruction | Status | Evidence |
| --- | --- | --- |
| QPI must not be selected only by base score + selection priority | Done | `scripts/run_selector_demo.py`, `selector/selector_rules.json` |
| Add direct execution no-call signals | Done | `selector/selector_rules.json` |
| Preserve explicit analysis override behavior | Done | `scripts/run_selector_demo.py`, `case_qpi_analysis_override_should_call_001` |
| Normalize rule-level selection priority scale | Done | QPI rule priority `9`, IA rule priority `7` |
| Add required Round 03.1 QPI regression cases | Done | `tests/qpi.regression.json` |
| Sync new QPI cases into aggregate regression file | Done | `tests/regression_cases.json` |
| Add selector calibration smoke test | Done | `scripts/run_selector_calibration_smoke.py` |
| Normalize `misframing_risks` to `misclassification_risk` | Done | `selector/qpi_case_digests.json`, `scripts/validate_model_library.py` |
| Rename/document `mixed_or_multi_perspective` | Done | `qpi_complexity_pattern`, documented in `selector/README.md` and `docs/QPI_CONTEXTUAL_ROUTING_RULES.md` |
| Require viewpoint detail for multi-perspective digests | Done | validator requires `classification_by_viewpoint` or `viewpoint_summary` |
| Update stale QPI card count and date | Done | `cards/qpi.md`, `models/qpi.model.json` |
| Mark v0.2 content report as pre-case-promotion | Done | `reports/content_review_report_v0.2.md` |
| Preserve source paths in review zip | Done | `optional_raw_changed_files.zip` uses relative paths |
| Exclude `knowledge_assets` from review resources | Done | Not included in Round 03.1 raw zip |
| Include IA model/card if IA contract completion is referenced | Done | `models/intellectual_archaeology.model.json`, `cards/intellectual_archaeology.md` included in zip |

## Added QPI Regression Cases

- `case_qpi_international_logistics_no_call_001`
- `case_qpi_research_capacity_problem_not_issue_001`
- `case_qpi_multi_perspective_requires_viewpoint_output_001`
- `case_qpi_low_context_provisional_no_high_confidence_001`
- `case_qpi_direct_summary_no_call_001`
- `case_qpi_analysis_override_should_call_001`
