Expato
ГідиКаталогAI ПомічникСпільнотаДокументи
Увійти
До списку документів

Черга задач (STATE)

project: expat-community
version: "0.1.0"
phase: "Phase 2 — Distribution & Content (V1 launch-ready)"
launch_target: 2026-06-15 # public launch anchor
updated: 2026-06-05
last_merge: 2026-06-05 # merged: #156 OpenRouter AI (/api/chat=200), #153/#154/#155 QA epic, #157/#158/#159 content guides, #160 thrift-протокол, #162 DIR-003 CSV import. Phase 1 hardening DONE, AI live.
notes: |
  Реконсиляция STATE через /product-manager 2026-05-30. КРУПНЫЙ дрифт устранён:
  ВСЕ production_blockers Phase 1 закрыты в коде, но висели todo в трекере.
  Закрыто/подтверждено: SEC-001 (#127 merged), SEC-002 CSRF (#71), REL-001
  error-boundaries (#74), ARCH-001 shared utils (#75), SEC-003 CSP (#96),
  SEC-004 PII-mask (#95), UX-POLISH (#85-88), I18N (#89/90, #91 named scope #138),
  perf #97/#98 (#99 re-opened в tech_debt после round-5: mock data top-level).
  => Phase 1 (production hardening) ЗАВЕРШЁН: V1-функционал shipped, security/
  reliability/i18n/SEO закрыты, SEC-001b (FormData type-guards) merged #152.
  Новый gate перед onboarding бизнесов — QA-001 (cross-platform verification),
  см. CURRENT. E2E 404 оказался test-harness флаком, не продуктовым багом.
  Узкое горло (как и в STRATEGY §0) — distribution + наполнение каталога, НЕ код.
  Открытый backlog = 7 P2/P3 tech-debt issues (#91, #92, #93, #94, #99, #100, #128), ни один не блокирует launch.
  ВНИМАНИЕ: GH #99 закрыт COMPLETED 2026-05-30, но код-условие НЕ исправлено
  (MOCK_* всё ещё на module-load: directory.ts:32/:43, forum.ts:49) — закрыт
  ошибочно, нужен re-open. Держим в tech_debt чтобы долг не потерялся.
  SEC-001b (server-action FormData type-guards) закрыт в #152 — больше НЕ в CURRENT.
  Инфра-апдейт 2026-05-30: заведён авто-тест-слой (Vitest + Playwright, PR #147),
  autonomous tooling (secret-hook, tdd/launch-readiness/manual-qa skills, PR #148).
  CI был заблокирован GitHub-биллингом → починен, оба PR green, ждут Codex 👍.

## CURRENT (Phase 2 — путь к public launch 2026-06-15)

current:
  - id: GROWTH-001
    title: "Outreach: 5 каналов distribution (TG, FB, Reddit, Casa de Ucrania, личный)"
    status: in-progress
    priority: P0-critical
    refs: ["STRATEGY §7 — Первые 100 пользователей", "docs/growth/ (#163 merged)"]
    note: "Кит готов (#163): docs/growth/outreach-playbook.md + message-templates.md (RU/UK/ES). Сам аутрич — за основателем (не code)."

  - id: DIR-003
    title: "50-100 реальных listings (ручной outreach к бизнесам)"
    status: in-progress
    priority: P1-high
    refs: ["STRATEGY Риск 1 — Cold Start", "scripts/import-listings.ts (#162 merged)"]
    note: "Тул готов (#162): data/listings.csv → npm run import:listings -- --commit. Сбор данных (50-100 бизнесов) — за основателем."

  - id: CONTENT-003
    title: "Новые гиды Phase 2 — done для launch (3/3 релизных)"
    status: done
    priority: P2-medium
    refs: ["PRD §8 — Phase 2 Content & Growth"]
    note: |
      3 релизных гида shipped: водительские права #157, DN visa #158,
      школы #159 (все ru/uk/es/en). Налоги/страховка из PRD §8 — CUT из
      launch-scope (founder ратифицировал 2026-06-08, низкий launch-leverage)
      → post-launch backlog.

  - id: CONTENT-004
    title: "Перевод 5 существующих гидов на UK/ES/EN"
    status: deferred
    priority: P3-low
    note: "Defer post-launch (founder 2026-06-08) — не блокер 15.06."

  - id: QA-001
    title: "Pre-onboarding verification — full cross-platform manual QA + reliable e2e"
    status: in-progress
    priority: P0-critical
    note: |
      Gate перед onboarding реальных бизнесов (user готов привести поставщиков).
      Подзадачи:
        QA-001a [done] E2E 404 диагностика — НЕ продуктовый баг. Smoke-routes
          (6 routes × 4 локали = 24 проверки в e2e/smoke.spec.ts: "", /guides,
          /directory, /community, /docs, /assistant) отдают 200 на чистом
          prod-сервере (next start). Провалы Playwright = test-harness флак:
          reuseExistingServer:true + Next dev on-demand компиляция под
          fullyParallel нагрузкой. NB: pricing/auth/legal/category пока вне
          smoke-покрытия — расширить в QA-001b.
        QA-001b [partial] e2e harness против prod build — DONE (#154). НЕ done:
          расширить smoke на pricing/auth/legal/category (e2e/smoke.spec.ts:7
          PATHS пока 6 routes) — остаётся TODO до gate.
        QA-001c [todo] /manual-qa — viewport×locale матрица через Chrome DevTools
          MCP: landing→signup→assistant→directory→listing→community→Stripe.
          Нужен live staging (vercel.app) + реальный backend для signup/Stripe/AI.
        QA-001d [todo] Lighthouse perf/a11y/SEO на ключевых routes (≥90/95/95).
        QA-001e [done-tooling] One-command Vercel env setup + launch checklist
          (#155 merged). Сам прогон env-setup — на основателе (см. ниже).
      Узкое горло (founder-gated, НЕ код): основатель должен выставить в Vercel
      prod Resend (+DNS expato.eu) и 4×Stripe ключа. OPENROUTER_API_KEY уже set,
      AI live (#156). Supabase set. Без Resend/Stripe — signup-email и платежи
      мертвы → QA-001c/d сквозные flow заблокированы.

## TECH-DEBT BACKLOG (post-launch, не блокирует)

tech_debt:
  - reason: "Code-quality рефактор — не блокер production, низкий ROI до пользователей"
    items:
      - issue: 91
        title: "Remove unused locale keys (named 19 shipped #138; broader dead-key audit остаётся)"
        priority: P2-medium
      - issue: 92
        title: "Extract mock data from directory.ts/forum.ts"
        priority: P2-medium
      - issue: 99
        title: "Lazy-load mock data only when Supabase not configured (top-level MOCK_* prod-bundle hit)"
        priority: P2-medium
        note: "GH issue закрыт COMPLETED 2026-05-30 БЕЗ код-фикса — закрыт ошибочно. Условие живо: MOCK_CATEGORIES/MOCK_LISTINGS на module load (src/lib/directory.ts:32/:43, src/lib/forum.ts:49) грузятся даже когда Supabase сконфигурирован. Нужен re-open."
      - issue: 93
        title: "Replace require() with dynamic import() for optional packages"
        priority: P2-medium
        note: "Осторожно — current lazy-require намеренный; конверсия в await import() трогает async-цепочки. Низкий приоритет."
      - issue: 94
        title: "Auto-generate Supabase types (нужен supabase CLI db:gen-types)"
        priority: P2-medium
      - issue: 100
        title: "updated_at Postgres trigger (lazy env в pricing.ts уже done)"
        priority: P2-medium
        note: "Через supabase-migrate skill. DB-correctness, не блокер."

  - reason: "Breaking-change major bumps — ждут отдельного цикла"
    items:
      - issue: 128
        title: "Dependabot defer major version bumps + tracker"
        priority: P3-low
      - prs: [119, 120, 121, 122]
        title: "lucide 1.x / TS 6.x / stripe 22.x / @types/node 25.x"

## DONE — Phase 1 (production hardening) ЗАВЕРШЁН

done_phase1:
  - id: SEC-001
    title: "/api/chat Zod-валидация + streaming payload cap"
    completed: 2026-05-18
    refs: ["PR #127"]
    note: "Scope narrowed: only /api/chat hardened here. Server-action type-safe validation (SEC-001b) shipped separately в #152."
  - id: SEC-002
    title: "CSRF protection на POST API routes"
    completed: 2026-05-18
    refs: ["#71"]
  - id: SEC-003
    title: "Content-Security-Policy header (+ Vercel Analytics #130)"
    completed: 2026-05-18
    refs: ["#96", "#130"]
  - id: SEC-004
    title: "Mask PII (email) в server logs"
    completed: 2026-05-18
    refs: ["#95", "src/lib/email.ts:95"]
  - id: REL-001
    title: "error.tsx + loading.tsx + not-found.tsx на всех routes"
    completed: 2026-05-18
    refs: ["#74"]
  - id: ARCH-001
    title: "Shared utilities (safeLocale, formatDate, safeHostname, isSupabaseConfigured)"
    completed: 2026-05-18
    refs: ["#75"]
  - id: I18N-FIX
    title: "ES diacritics + localized server-action errors + unused keys (named scope)"
    completed: 2026-05-18
    refs: ["#89", "#90", "#91 (#138)"]
  - id: UX-POLISH
    title: "Markdown в чате + aria-label hero + emoji a11y + i18n nav в guides"
    completed: 2026-05-18
    refs: ["#85", "#86", "#87", "#88"]
  - id: PERF-001
    title: "Hero next/image (#97), N+1 устранены агрегацией in-memory (#98)"
    completed: 2026-05-18
    refs: ["#97", "#98"]
    note: "#99 (lazy mock data) НЕ done — MOCK_CATEGORIES/MOCK_LISTINGS объявлены на module top level в src/lib/directory.ts + src/lib/forum.ts. Перенесено в tech_debt."
  - id: I18N-03
    title: "Hreflang alternate links для всех 4 локалей"
    completed: 2026-04-19
    refs: ["src/lib/seo.ts:getAlternates"]

## DONE (V1 surface — на staging)

done:
  - id: INIT-001
    title: "Next.js 15 + TS + Tailwind v4 + shadcn/ui + next-intl"
    completed: 2026-03-18
  - id: INIT-002
    title: "Supabase setup + RLS на всех таблицах"
    completed: 2026-03-18
  - id: INIT-003
    title: "Landing page (RU/UK/ES/EN) + email signup (Resend)"
    completed: 2026-03-18
  - id: CONTENT-001
    title: "NIE guide (RU/UA)"
    completed: 2026-03-18
  - id: CONTENT-002
    title: "Pet relocation guide Spain (RU/UA)"
    completed: 2026-03-18
  - id: CONTENT-005
    title: "Гиды: empadronamiento, банки, жильё, здоровье (RU)"
    completed: 2026-04-19
  - id: DIR-001
    title: "Directory: базовые листинги (CRUD, категории, поиск)"
    completed: 2026-04-19
    notes: "Замок via dashboard, mock-данные для запуска"
  - id: DIR-002
    title: "Directory: Stripe premium (basic/pro/premium €29/79/199)"
    completed: 2026-04-19
  - id: COMM-001
    title: "Community forum: категории, посты, ответы (auth-gated)"
    completed: 2026-04-19
  - id: AI-001
    title: "Relocation AI Assistant (RAG через Claude API)"
    completed: 2026-04-19
    notes: "RAG на гидах, чат-интерфейс, стриминг, ответы на языке вопроса."
  - id: AUTH-001
    title: "Magic-link auth через Supabase + middleware redirect"
    completed: 2026-04-19
  - id: LEGAL-001
    title: "Legal pages + cookie banner + RU/UK переводы (#114, #125)"
    completed: 2026-04-19
  - id: SEO-CORE
    title: "OG /api/og dynamic + hreflang + canonical + JSON-LD + sitemap расширен"
    completed: 2026-04-19
    refs: ["PR #129, #131, #132, #133", "src/lib/seo.ts"]
  - id: UX-ANALYTICS
    title: "Consent-gated Vercel Analytics + error/not-found polish — #126"
    completed: 2026-04-19
  - id: STRATEGY-001
    title: "Market research & strategy document"
    completed: 2026-03-18
    output: "STRATEGY.md"
  - id: PRD-001
    title: "PRD document"
    completed: 2026-03-19
    output: "PRD.md"
  - id: ANALYST-BRIEF-001
    title: "Бриф для аналитика + staging-ссылки"
    completed: 2026-04-18
    output: "ANALYST-BRIEF.md"

Expato

Expato

Спільнота для експатів в Іспанії

Навігація

  • Гіди
  • Каталог
  • Спільнота

Гіди

  • Оформлення NIE
  • Відкриття рахунку
  • Переїзд з улюбленцями
  • Оренда житла

Компанія

  • Про нас
  • Блог
  • Контакти

© 2026 Expato. Всі права захищені.

Політика конфіденційностіУмови використанняФайли cookieПравова інформація