# Generated Scene Runtime URL Classification Hardening Plan > Date: 2026-04-20 > Status: Draft > Parent route: > - `runtime_url_classification_hardening` > Parent ledger: > - `tests/fixtures/generated_scene/generated_scene_source_first_runtime_semantics_ledger_2026-04-20.json` ## Plan Intent Implement the first reusable slice that separates runtime URL roles during generation. ## Fixed Input Bucket Use the bounded bucket: 1. scenes with strong source evidence for multiple URL roles 2. scenes whose current generated manifest only exposes `target_url` 3. high-signal browser-script scenes where runtime context URL and module-route URL are likely to diverge This first slice should focus on the highest-risk parameterized browser families before broader expansion. ## Allowed Files 1. `src/generated_scene/analyzer.rs` 2. `src/generated_scene/generator.rs` 3. `src/generated_scene/ir.rs` 4. route-local generator tests ## Forbidden Files 1. no callback-host/runtime implementation 2. no service-console changes 3. no direct edits to generated skills 4. no board or validation assets ## Expected Coverage Delta 1. generated metadata can distinguish app-entry/runtime-context/module-route roles 2. callers are no longer forced to guess `page_url` semantics for the bucketed scenes ## Stop Statement Stop after the first reusable URL-classification slice is implemented and route-local follow-up assets are published. Do not expand to every scene in this route plan.