{ "tier": 4, "name": "escape-hatch", "description": "Lint-only fixture set. Each case demonstrates a Remotion pattern the skill cannot or should not translate cleanly. The skill is graded on whether lint_source.py emits the right finding for each case — there are no renders to compare. T4 passes when every case triggers its expected rule and no others.", "cases": [ { "file": "01-use-state.tsx", "expected": { "blockers": [{ "rule": "r2hf/use-state", "min_count": 1 }], "warnings": [], "skill_action": "refuse_translation_recommend_interop" } }, { "file": "02-use-effect-deps.tsx", "expected": { "blockers": [{ "rule": "r2hf/use-effect-deps", "min_count": 1 }], "warnings": [], "skill_action": "refuse_translation_recommend_interop" } }, { "file": "03-async-metadata.tsx", "expected": { "blockers": [{ "rule": "r2hf/async-metadata", "min_count": 1 }], "warnings": [], "skill_action": "refuse_translation_recommend_interop" } }, { "file": "04-third-party-react.tsx", "expected": { "blockers": [{ "rule": "r2hf/third-party-react-ui", "min_count": 1 }], "warnings": [], "skill_action": "refuse_translation_recommend_interop" } }, { "file": "05-lambda-config.tsx", "expected": { "blockers": [], "warnings": [{ "rule": "r2hf/lambda-import", "min_count": 1 }], "skill_action": "drop_lambda_code_translate_remainder_if_clean" } }, { "file": "06-warnings-only.tsx", "expected": { "blockers": [], "warnings": [ { "rule": "r2hf/delay-render", "min_count": 1 }, { "rule": "r2hf/use-callback", "min_count": 1 }, { "rule": "r2hf/use-memo", "min_count": 1 } ], "skill_action": "translate_after_dropping_wrappers" } }, { "file": "07-custom-hook.tsx", "expected": { "blockers": [], "warnings": [{ "rule": "r2hf/custom-hook", "min_count": 1 }], "skill_action": "inline_hook_body_if_pure" } }, { "file": "08-mixed.tsx", "expected": { "blockers": [ { "rule": "r2hf/use-state", "min_count": 1 }, { "rule": "r2hf/use-effect-deps", "min_count": 1 }, { "rule": "r2hf/third-party-react-ui", "min_count": 1 } ], "warnings": [{ "rule": "r2hf/use-callback", "min_count": 1 }], "skill_action": "refuse_translation_recommend_interop" } } ], "totals": { "expected_blocker_cases": 5, "expected_warning_only_cases": 3, "expected_total_blocker_findings_min": 7, "expected_total_warning_findings_min": 6 } }