diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 9dda026..8cd04fe 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -86,7 +86,9 @@ "Bash(gcloud secrets *)", "Bash(openssl rand *)", "Bash(ssh *)", - "Skill(commit-commands:commit-push-pr)" + "Skill(commit-commands:commit-push-pr)", + "Bash(obsidian read *)", + "Bash(obsidian search *)" ] } } diff --git a/frontend/public/help-screenshots/admin/01-dashboard.png b/frontend/public/help-screenshots/admin/01-dashboard.png index e061400..3746d2d 100644 Binary files a/frontend/public/help-screenshots/admin/01-dashboard.png and b/frontend/public/help-screenshots/admin/01-dashboard.png differ diff --git a/frontend/public/help-screenshots/admin/07-qc-detail-en-first.png b/frontend/public/help-screenshots/admin/07-qc-detail-en-first.png new file mode 100644 index 0000000..f894a12 Binary files /dev/null and b/frontend/public/help-screenshots/admin/07-qc-detail-en-first.png differ diff --git a/frontend/public/help-screenshots/admin/08-new-job-translation-banner.png b/frontend/public/help-screenshots/admin/08-new-job-translation-banner.png new file mode 100644 index 0000000..6d0dbfd Binary files /dev/null and b/frontend/public/help-screenshots/admin/08-new-job-translation-banner.png differ diff --git a/frontend/public/help-screenshots/linguist/10-en-first-gate.png b/frontend/public/help-screenshots/linguist/10-en-first-gate.png new file mode 100644 index 0000000..59e1cfa Binary files /dev/null and b/frontend/public/help-screenshots/linguist/10-en-first-gate.png differ diff --git a/frontend/public/help-screenshots/production/04-qc-list.png b/frontend/public/help-screenshots/production/04-qc-list.png index 5ccc45a..20debdd 100644 Binary files a/frontend/public/help-screenshots/production/04-qc-list.png and b/frontend/public/help-screenshots/production/04-qc-list.png differ diff --git a/frontend/public/help-screenshots/production/07-qc-detail-en-first.png b/frontend/public/help-screenshots/production/07-qc-detail-en-first.png new file mode 100644 index 0000000..f894a12 Binary files /dev/null and b/frontend/public/help-screenshots/production/07-qc-detail-en-first.png differ diff --git a/frontend/public/help-screenshots/production/08-new-job-translation-banner.png b/frontend/public/help-screenshots/production/08-new-job-translation-banner.png new file mode 100644 index 0000000..6d0dbfd Binary files /dev/null and b/frontend/public/help-screenshots/production/08-new-job-translation-banner.png differ diff --git a/frontend/src/help-content/admin.md b/frontend/src/help-content/admin.md index 5ee8bfa..40fd567 100644 --- a/frontend/src/help-content/admin.md +++ b/frontend/src/help-content/admin.md @@ -182,21 +182,59 @@ Edit the fields and **left-click** **Save** to apply changes. --- -## 8. All Platform Operations +## 8. EN-First Translation Pipeline + +All translations are generated from the **approved English master VTT** to ensure every target language has identical cue structure (same count, same timestamps) as English. This makes linguist side-by-side proofreading reliable. + +**Pipeline order:** +1. AI processes the video → English VTT generated +2. Job enters QC with English only +3. English approved → translations dispatched automatically for all target languages +4. Target-language cards unlock for linguist review + +### Origin badges + +Each target-language card header shows a badge indicating translation provenance: + +| Badge | Meaning | Action | +|-------|---------|--------| +| (none) | Generated from approved EN VTT — cue-aligned | None needed | +| **⚠ video-native** (red) | Legacy: generated directly from the video — may have different cue count | Use **↺ Re-translate from EN** | + +![QC Detail with origin badge and EN-gate banner](/help-screenshots/admin/07-qc-detail-en-first.png) + +### Re-translating a language from EN master + +Use this button to fix legacy jobs (showing `⚠ video-native`) or to regenerate a translation after major EN edits. + +**Step 1.** Open **QC Detail** for the job. + +**Step 2.** Expand the target-language card. + +**Step 3.** **Left-click** **↺ Re-translate from EN**. +> The button is disabled until English is approved. + +**Step 4.** In the confirmation modal, optionally type a **Reason** (written to the audit log). + +**Step 5.** **Left-click** **Re-translate**. The language QC resets to Pending and a cue-aligned translation is generated. + +--- + +## 9. All Platform Operations As Admin you have access to all other platform features documented in the other role guides: - **Uploading videos** — see Client Guide §3 - **QC Review and approval** — see Reviewer Guide §4–6 - **Bulk job operations** — see Production Guide §3 -- **Failure retry** — see Production Guide §7 -- **Brief management** — see Production Guide §8 and Project Manager Guide §6 +- **Failure retry** — see Production Guide §8 +- **Brief management** — see Production Guide §9 and Project Manager Guide §6 - **Glossary management** — see Project Manager Guide §5 - **Final Review** — see Reviewer Guide §9 and Project Manager Guide §3 -- **Audit Log** — see Production Guide §9 +- **Audit Log** — see Production Guide §10 --- -## 9. Deleting Jobs +## 10. Deleting Jobs As Admin you can delete any job. **This is irreversible.** @@ -208,7 +246,7 @@ Select multiple jobs with checkboxes → Action dropdown → **Delete Selected** --- -## 10. Timeline Preview & Rendering +## 11. Timeline Preview & Rendering Admins have full access to the QC Detail page including the **Timeline Preview** bar and **Render Changes** panel. @@ -238,7 +276,7 @@ The purple panel activates when changes are pending: --- -## 11. Mouse Interactions Reference +## 12. Mouse Interactions Reference | Action | Where | What happens | |--------|-------|--------------| @@ -265,7 +303,7 @@ The purple panel activates when changes are pending: --- -## 12. Keyboard Shortcuts +## 13. Keyboard Shortcuts All shortcuts from other roles apply to Admin as well: @@ -281,7 +319,7 @@ All shortcuts from other roles apply to Admin as well: --- -## 13. Common Issues +## 14. Common Issues | Issue | Cause | Fix | |-------|-------|-----| diff --git a/frontend/src/help-content/linguist.md b/frontend/src/help-content/linguist.md index 0643005..d54a942 100644 --- a/frontend/src/help-content/linguist.md +++ b/frontend/src/help-content/linguist.md @@ -171,7 +171,29 @@ A comment text area expands. Type your comment and **left-click** **Send**. --- -## 6. Submitting for Review +## 6. English-First Gate + +Translations are generated from the **approved English master VTT** to ensure every language has the same cues and timings as the English source. + +**What this means for you:** +- When a job arrives in QC, **English is processed first**. Target languages are not available until English is approved by a reviewer or admin. +- If you open a job and your language card shows an amber banner, English has not yet been approved. + +![QC Detail showing EN-gate amber banner and disabled actions](/help-screenshots/linguist/10-en-first-gate.png) + +The amber banner reads: *"Waiting for EN approval — translation will start automatically once the source language is approved."* + +While the banner is shown: +- **Start work**, **Submit for review**, and **Assign** are disabled. +- You can still view the video and any pre-existing VTT content, but you cannot edit or submit. + +Once an authorised reviewer approves English, the translation is generated automatically. The banner disappears and your language card becomes fully active. + +> **No action needed from you.** Simply wait for the notification or check back when English is approved. + +--- + +## 7. Submitting for Review When you are satisfied with your edits: @@ -185,7 +207,7 @@ The job status changes to **Pending Review** and a Reviewer is notified. --- -## 7. Handling Reviewer Feedback +## 8. Handling Reviewer Feedback If a Reviewer sends changes back, the language status changes to **Rejected** (or **QC Feedback**) and the job reappears in your queue. @@ -201,7 +223,7 @@ If a Reviewer sends changes back, the language status changes to **Rejected** (o --- -## 8. Viewing Glossaries +## 9. Viewing Glossaries Glossaries contain client-approved brand terms, product names, and preferred translations. Active glossary terms are highlighted in the VTT editor with an **amber underline**. @@ -211,7 +233,7 @@ To view full glossary lists: **left-click** **Clients** in the sidebar (if you h --- -## 9. QC Review (Organisation-wide View) +## 10. QC Review (Organisation-wide View) In addition to your personal queue, you can see all jobs in QC across the organisation. @@ -221,7 +243,7 @@ In addition to your personal queue, you can see all jobs in QC across the organi --- -## 10. Timeline Preview & Rendering +## 11. Timeline Preview & Rendering After editing cues or adjusting the AD script, the **Timeline Preview** bar shows the structure of the accessible video so you can verify the layout before triggering a render. @@ -263,7 +285,7 @@ The purple panel below the timeline becomes active when there is something to re --- -## 11. Mouse Interactions Reference +## 12. Mouse Interactions Reference | Action | Where | What happens | |--------|-------|--------------| @@ -285,7 +307,7 @@ The purple panel below the timeline becomes active when there is something to re --- -## 12. Keyboard Shortcuts +## 13. Keyboard Shortcuts | Key | Action | |-----|--------| @@ -295,7 +317,7 @@ The purple panel below the timeline becomes active when there is something to re --- -## 13. Common Errors +## 14. Common Errors | Error | Cause | Fix | |-------|-------|-----| diff --git a/frontend/src/help-content/production.md b/frontend/src/help-content/production.md index e5263c9..a5ac212 100644 --- a/frontend/src/help-content/production.md +++ b/frontend/src/help-content/production.md @@ -164,7 +164,27 @@ If a job is in Final Review or Completed and needs to go back to QC: --- -## 6. QC Review +## 6. EN-First Translation Pipeline + +All translations are generated from the **approved English master VTT**, not from the original video. This guarantees that every target language has exactly the same number of cues and identical timestamps as the English source. + +**The pipeline runs in this order:** + +1. AI processes the video → English VTT is generated +2. Job enters **QC Review** with English content only +3. English is **approved** (by any reviewer or admin with QC access) +4. Translation is automatically dispatched for all target languages +5. Target-language cards become active for linguist review + +> Until English is approved, target-language cards show an amber warning banner and all actions are disabled. + +When uploading a job with target languages, the form shows a blue note confirming how translations work: + +![Translation info banner on New Job form](/help-screenshots/production/08-new-job-translation-banner.png) + +--- + +## 7. QC Review You can view and manage the full QC queue. @@ -180,9 +200,35 @@ From QC Detail you can: - Approve or reject languages (see Reviewer Guide §4) - Generate share links +### Origin badges on language cards + +Each target-language card header shows an **origin badge** indicating how its translation was generated: + +| Badge | Meaning | +|-------|---------| +| (no badge) | EN-aligned — generated from the approved EN VTT, cue structure 1:1 | +| **⚠ video-native** (red) | Legacy translation generated directly from the video — cue count may differ from EN. Use **↺ Re-translate from EN** to fix. | + +![QC Detail showing origin badge and EN-gate banner](/help-screenshots/production/07-qc-detail-en-first.png) + +### Re-translating a language from the EN master + +If a language card shows the red **⚠ video-native** badge (or if a linguist reports cue mismatches), you can regenerate the translation from the approved English master: + +**Step 1.** Open the **QC Detail** page for the job. + +**Step 2.** Expand the target-language card. + +**Step 3.** **Left-click** **↺ Re-translate from EN** (indigo outline button). +> This button is disabled (greyed out) until English is approved. + +**Step 4.** A confirmation modal appears. Optionally type a **Reason** (written to the audit log). + +**Step 5.** **Left-click** **Re-translate** to confirm. The language QC status resets to Pending and a new cue-aligned translation is generated automatically. + --- -## 7. Handling Failures +## 8. Handling Failures The **Failures** dashboard shows all jobs that have encountered processing errors. @@ -224,7 +270,7 @@ If AI processing has completely failed and you have a manually prepared VTT file --- -## 8. Brief Management +## 9. Brief Management You can manage job briefs from clients. @@ -240,7 +286,7 @@ You can manage job briefs from clients. --- -## 9. Audit Log +## 10. Audit Log The audit log records every action taken on the platform. @@ -278,7 +324,7 @@ The audit log records every action taken on the platform. --- -## 10. Timeline Preview & Rendering +## 11. Timeline Preview & Rendering After editing the AD script or adjusting pause points in the QC Detail page, the **Timeline Preview** bar shows the current accessible video structure. @@ -312,7 +358,7 @@ The purple panel activates when there are changes pending: --- -## 11. Mouse Interactions Reference +## 12. Mouse Interactions Reference | Action | Where | What happens | |--------|-------|--------------| @@ -337,7 +383,7 @@ The purple panel activates when there are changes pending: --- -## 12. Keyboard Shortcuts +## 13. Keyboard Shortcuts | Key | Action | |-----|--------| @@ -350,7 +396,7 @@ The purple panel activates when there are changes pending: --- -## 13. Common Issues +## 14. Common Issues | Issue | Cause | Fix | |-------|-------|-----| diff --git a/frontend/src/help-content/project-manager.md b/frontend/src/help-content/project-manager.md index c3a3d32..849848f 100644 --- a/frontend/src/help-content/project-manager.md +++ b/frontend/src/help-content/project-manager.md @@ -172,13 +172,27 @@ You can also create briefs: **left-click** **New Brief** (blue), fill in the for --- -## 7. Uploading on Behalf of a Client +## 7. EN-First Translation Pipeline + +All translations are generated from the **approved English master VTT** after English QC is complete. You do not need to trigger this manually — it happens automatically when English is approved. + +**Pipeline flow visible to you:** +1. Job arrives in QC → English-only content available +2. Reviewer or linguist approves English +3. Translations are dispatched automatically → target languages become active +4. Linguists review each language → you perform Final Review + +If a language shows the red **⚠ video-native** badge in QC Detail, its translation was generated directly from the video (legacy behaviour) and its cue structure may differ from English. Production or Admin can use the **↺ Re-translate from EN** button to regenerate it from the approved English master. + +--- + +## 8. Uploading on Behalf of a Client As PM, you can upload videos the same way Production does. See **Production Guide §2** for the full upload walkthrough. --- -## 8. Audit Log +## 9. Audit Log The Audit Log records all platform actions for compliance and troubleshooting. @@ -190,7 +204,7 @@ Use the tab navigation to switch between **All Events**, **Security Events**, an --- -## 9. Tracking Overdue and Stuck Jobs +## 10. Tracking Overdue and Stuck Jobs ### From the dashboard @@ -207,7 +221,7 @@ From the Job Detail page you can escalate to Production by using the job URL and --- -## 10. Mouse Interactions Reference +## 11. Mouse Interactions Reference | Action | Where | What happens | |--------|-------|--------------| @@ -231,7 +245,7 @@ From the Job Detail page you can escalate to Production by using the job URL and --- -## 11. Common Issues +## 12. Common Issues | Issue | Cause | Fix | |-------|-------|-----|