obsidian/Next-Session-Prompt.md
2026-04-29 19:45:31 +01:00

90 lines
No EOL
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Video Accessibility — Next Session Prompt
date: 2026-04-29
tags:
- video-accessibility
- prompt
- handover
---
# Next Session Start Prompt
> Copy the block below and paste as the first message in the new Claude Code session.
---
```
Продолжаем работу над video-accessibility проектом.
## Контекст
Платформа — AI SaaS для генерации accessibility-материалов (CC, AD, SDH) из видео.
Рабочая директория: /Users/ai_leed/Documents/Projects/Oliver/video-accessibility
Текущая ветка: feat/pm-productivity (от main)
Последний коммит: 08fcb4d
## Полный план
Хендовер с историей что сделано и что осталось:
/Users/ai_leed/Library/Mobile Documents/iCloud~md~obsidian/Documents/VadymSamoilenko/01 Projects/video-accessibility/Multi-Tenant Audit — Handover.md
## Что уже сделано (не трогать)
### PR-1 (merged): Multi-tenancy foundations
- org-изоляция во всех эндпоинтах (assert_job_in_user_org)
- WebSocket membership check
- organization_id в моделях
- миграция 2026_05_add_organization_id.py
### PR-2 (pushed feat/workflow-blockers, commit c7a6f13):
- PM dashboard + Production dashboard
- role-based login redirect (linguist/reviewer → /qc/queue)
- sidebar badges (live QC count)
- two-stage QC enforcement (_assert_can_approve)
- email notifications enabled
- PM в complete_job, Final Review, Audit Log
### PR-3+4+5 (pushed feat/pm-productivity, commit 1bf0fb9):
- W-5: project defaults autofill в NewJob
- PM-9: quick filter presets в JobsList
- PM-10: PM в canManageJobs / New Job button / Final Review action
- PM-12: server pagination (size:50, page state, pagination controls)
- PM-1: deadline field в Job model + JobsList column + overdue red + NewJob date picker
- PM-2: POST /jobs/{id}/clone + useCloneJob hook + Clone button
- R-4: reject categories (pill-select) в QCDetail reject modal
- R-2: reviewed_cues/total_cues + progress bar + 80% approve gate + /mark-cue-reviewed
- L-9: Cmd+S saves full VTT, Escape closes modals
- T-1: JOB_STATUS_LABELS / getJobStatusLabel unified in jobStatusMessages.ts
- T-14: settings.upload_max_video_bytes + settings.upload_signed_url_ttl_hours
### PR-6 (pushed feat/pm-productivity, commit 08fcb4d):
- W-4: Job stores initial_linguist_id/reviewer_id; auto-assigned on first GET /language-qc
NewJob shows team-assignment grid when project selected
- L-3 WS: GET /vtt → broadcast_to_job(language_editing_started)
QCDetail shows "User X is editing [lang]" banner (auto-clears 5s)
- R-5 WS: add_comment() → broadcast_to_job(language_qc_comment)
QCDetail live-invalidates comments cache
- L-15: language_qc_assigned WS → QCDetail refetches lang-qc + toast
- R-7: VttEditor gets onCuePlay prop; AD cues get ▶ play button (seeks accessible video)
- T-15: beforeunload guard in NewJob while upload is in progress
- BUGFIX: broadcast_to_job() + broadcast_to_user() added to ConnectionManager (were missing)
## Что осталось
### W-12/13/14 — Job Brief / client intake form
- ОТЛОЖЕНО: требует новый EntityJobBrief, новые состояния стейт-машины
- Слишком большой скоуп для текущей итерации
### Открытые риски перед деплоем
1. Запустить миграцию 2026_05_add_organization_id.py
2. Проверить что у существующих staff есть memberships/teams
3. MT-12 (_assert_client_access legacy bypass для PM) ещё не закрыт
4. MT-16 (JWT без org_ids) — каждый запрос ходит в Mongo для memberships; 60s cache есть
## Инструкции
1. Перед началом прочти хендовер в Obsidian (ссылка выше)
2. Работаем на ветке feat/pm-productivity
3. Ветка готова к код-ревью и мержу в main
4. После деплоя запустить миграцию
```