What problem does it solve? Wiring a new event from the Rust core through to the Next.js web UI touches four separate layers (emit site, TypeScript types, reducer, component), and a single field-name mismatch between core and web silently breaks the feature. This Skill provides the exact end-to-end pipeline so nothing is missed. ## Core Features & Use Cases - Four-layer pipeline: Guides changes through core event emission (core/src/<module>.rs), web types (web/src/lib/types.ts), the shared reducer (web/src/lib/reducer.ts), and the consuming component (web/src/components/<name>.tsx). - Mismatch prevention: Emphasizes copying exact field names from the Event::new(...).with(...) emit site, the most common silent failure. - Verification gates: Specifies cargo check and npx tsc --noEmit as the authoritative checks, plus known caveats like the pre-existing oauth.rs test breakage. - Use Case: When adding a lifecycle or observability signal (e.g., a per-run progress event) that the web UI should render as a panel or modal, follow the pipeline to emit, type, reduce, and display it without touching the deliberately generic core bridge. ## Quick Start Add a new core event called 'run_progress' emitted from the Rust core and render its payload in the web chat UI following the core-event-to-web pipeline.