- Date: 2026-05-22
- Status: Accepted
- Feature: URL-import (unparks §V "Small-company path / ARNO Studio")
- Affects: url_import_spec.md § 0.2, § IV Phase 1
Context
URL-import — новый onboarding flow для small-biz: юзер даёт URL → ARNO строит React TSX компоненты со всеми состояниями, темами, viewports.
Изначальный подход (rejected): vision-first pipeline — captures screenshots всех states/viewports → отдаёт VLM (Vision Language Model) → VLM генерирует TSX из visual analysis.
Юзерская критика:
"Меня смущает в твоём решении что ты равняешься на скрины, а не на код. Я даю тебе ссылку на код — это более мощный и дешёвый инструмент. Найди решение по анализу кода а не принтскринов."
Объективные минусы vision-first:
- VLM cost $0.20-0.40/component через Gemini Flash-Lite vision mode
- VLM precision ниже на дизайн-токенах (цвета — аппроксимация, не exact CSS values)
- VLM не видит semantic ARIA / event listeners / dynamic state machinery
- Source maps (30-50% сайтов) дают оригинальный TSX напрямую — vision полностью лишний для них
Decision
Code-first pipeline с reactive vision fallback:
-
Primary path (deterministic, ~$0.001/component):
- Playwright DOM extraction
- PostCSS AST parsing (lenient mode для real-world bad CSS)
- Source maps detection и parsing (jackpot 30-50%)
- Computed styles capture
- Framework detection (React/Vue/Svelte/HTML)
- JS bundle pattern analysis
-
Schema-driven extraction с per-field priority chains (см ADR 0008)
-
Vision activation только когда code path fails acceptance gate (см ADR 0011)
Consequences
Pros:
- 5× дешевле на average ($0.001 vs $0.005 per component в bootstrap)
- Точные дизайн-токены из CSS variables, не аппроксимация
- Semantic ARIA сохранён
- Source maps shortcut → 90% confidence на старте для тех сайтов
Cons:
- Pipeline сложнее (multiple extraction layers)
- Не работает на canvas-rendered UI (Figma embed, charts) → vision-only fallback с low confidence
- CSS-in-JS runtime-generated class names требуют computed_style fallback
Trade-off accepted: complexity vs cost. Юзер explicit prefer cost optimization.
Alternatives rejected
A. Pure vision-first (изначальный draft)
- ❌ $0.20-0.40/component cost
- ❌ Аппроксимация tokens vs exact
- ❌ Игнорирует source maps jackpot
B. Vendor solutions (Vercel v0, Builder.io, Locofy)
- ❌ Closed source, vendor lock-in
- ❌ $20-30/мес minimum
- ❌ Нельзя fine-tune под ARNO use case
- ❌ Нельзя use в дальнейшей дистилляции
C. Hybrid с predictive vision triggers
- ❌ Spec'овая complexity без actual benefit (см ADR 0011)
- ❌ False vision activations → cost waste
Cross-references
- Main spec § 0.2 — pivot history
- ADR 0008 — priority chains design (юзер задал)
- ADR 0011 — reactive vs predictive activation
- ADR 0015 — explicit non-use of Claude API