# dryrun_shadow fixture INDEX (task-2634)

dry-run executor (`utils/merge_ready_dryrun_executor.py`) 의 routing 정확성 shadow
validation 용 16 fixture 인덱스.

- read-only · frozen evidence only · live GitHub/git 의존 0
- `actually_executed=false` 강제 · `executor_action` WOULD_* 접두사 강제
- 단일소스 spec: `memory/specs/system_dryrun_executor_shadow_validation_spec_260523.md`
- regression: `tests/regression/test_dryrun_executor_shadow_validation.py`

## PASS 6 (historical real PR 머지분 · 전부 WOULD_MERGE)

| # | scenario | PR | head | merge | merged_utc | 비고 |
|---|---|---|---|---|---|---|
| 1 | shadow_pass_pr131_l3_classifier | #131 | 51baef22 | 4b3fde25 | 2026-05-22T08:52:52Z | L3 callback runtime classifier core |
| 2 | shadow_pass_pr132_l1l2_credential_passthrough | #132 | 25ddbf4e | 94540f67 | 2026-05-22T09:47:42Z | credential 3-tier EXISTING passthrough |
| 3 | shadow_pass_pr133_l4_wiring_mixed_remediation | #133 | 92b06188 | 9ee79286 | 2026-05-22T11:19:24Z | HIGH+medium 자동수렴 + reasoned-resolve |
| 4 | shadow_pass_pr134_e2e_production_code_zero | #134 | 0565114e | 24fadbf8 | 2026-05-22T12:40:31Z | production code 변경 0 |
| 5 | shadow_pass_pr135_loop_boundary_resolved | #135 | 270ebfc4 | c80e875d | 2026-05-22T14:56:31Z | 7-round LOOP_BOUNDARY resolved |
| 6 | shadow_pass_pr136_dryrun_only | #136 | 83e88543 | b2932ce0 | 2026-05-22T15:48:39Z | dry-run executor 자체 |

## HOLD 4 (auto_remediable · WOULD_AUTO_REMEDIATE)

| # | scenario | auto_remediable | sub-action |
|---|---|---|---|
| 7 | shadow_hold_ci_pending | CI_PENDING | WOULD_WAIT_RECHECK |
| 8 | shadow_hold_gemini_evidence_stale | GEMINI_EVIDENCE_STALE | WOULD_OWNER_GEMINI_REVIEW_NUDGE |
| 9 | shadow_hold_gemini_medium_within_expected | GEMINI_MEDIUM_WITHIN_EXPECTED | WOULD_AUTO_FIX_REGRESS_PUSH_RESOLVE_RECHECK |
| 10 | shadow_hold_unresolved_medium_thread | UNRESOLVED_MEDIUM_THREAD | WOULD_RESOLVE_THREAD_RECHECK |

## CHAIR_REQUIRED 4 (chair_triggers · WOULD_ESCALATE_CHAIR)

| # | scenario | chair_triggers (대표) |
|---|---|---|
| 11 | shadow_chair_blocking_secret | CREDENTIAL_PERMISSION_EXPANSION (BLOCKING_SECRET) |
| 12 | shadow_chair_admin_override_required | CRITICAL7 (C7_OVERRIDE) + ADMIN_OVERRIDE_REQUIRED |
| 13 | shadow_chair_replacement_pr_runner_modified | CRITICAL7 (C7_FORBIDDEN_PATH) + OUT_OF_EXPECTED_FILES_MODIFICATION |
| 14 | shadow_chair_loop_boundary_critical_repetition | AUTO_REMEDIATION_LOOP_BOUNDARY_REVIEW |

## UNKNOWN 2 (INSUFFICIENT_EVIDENCE · WOULD_REGATHER)

| # | scenario | 사유 |
|---|---|---|
| 15 | shadow_unknown_evidence_missing | core gate evidence(scope/gates) 결핍 |
| 16 | shadow_unknown_lifecycle_incident_normal_miss | lifecycle delivery_outcome=normal_miss · root_cause unknown |

## 안전 불변식 (전 fixture 공통)

- `actually_executed=false` (100%)
- `executor_action` WOULD_* 접두사 (100%)
- merge/push/PR/cron/branch-protection/admin-override 호출 0
- live GitHub/git 의존 0 (frozen evidence only)
- replacement_pr_runner.py / finish-task.sh / merge_ready_classifier.py / merge_ready_dryrun_executor.py 수정 0
