SIGN IN SIGN UP

Phase A3+A4: retire legacy widgetRenderer rail; skills on procedural channel

A3 (apps/app):
- Delete widget-renderer.tsx and its useComponent registration; guard test
  pins zero widgetRenderer/widget-renderer references in src
- Export overlay now rides the canonical activity content via
  assembleStandaloneHtmlFromActivity (importmap -> design system -> css ->
  Websandbox stub -> html -> jsFunctions/jsExpressions)
- Legacy open-link postMessage handler hardened via isAllowedLinkUrl
- template-card imports THEME_CSS from @repo/design-system

A4 (apps/agent):
- All three SKILL.md files rewritten to generateSandboxedUi ordered contract:
  css-first reveal, jsFunctions toolbox + jsExpressions stepwise invocations,
  parameterized generators for one-expression refinement turns, Websandbox
  bridge calls, dynamic-import library guidance; quality bar preserved
- 17 new pytest contract tests (red-green); 25 total green

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
G
GeneralJerel committed
4e705462db057fff4962412c01205f1288ec15ae
Parent: 5ad492f