# TikTok verification recording rehearsal

Use this reference when preparing an internal or first-attempt TikTok Developer verification video for the AutoShorts/TrueTraceShorts dashboard.

## Trigger

- User asks for a TikTok Developer/App Review demo, verification video, recording rehearsal, or Upload Draft proof.
- Sandbox credentials are missing or the dashboard is only available as an internal/Tailnet preview.
- The goal is to make a clean recording, not to perform real platform publishing.

## Core rule

Do **not** fake readiness. If Sandbox credentials or a matching public dashboard domain are missing, proceed only as a clearly labelled best-effort rehearsal / first-attempt recording.

Allowed language:

- Mock-Modus für interne Generalprobe.
- Upload Draft Flow.
- No external TikTok API call in mock mode.
- For final review, TikTok may require Sandbox credentials and a matching public dashboard domain.

Forbidden claims:

- Sandbox connected.
- Real TikTok API called.
- Real upload completed.
- Public post created.
- Direct Post enabled.
- Officially review-ready when Sandbox/public-domain requirements are unmet.

## Dashboard recording-mode pattern

Add or use a focused route such as:

```text
/verification/recording?recording=1
```

When recording mode is active:

- Hide/minimize the normal sidebar and admin chrome.
- Use full-width app content.
- Show a compact top bar: `TikTok API-Verifizierung`, `Upload Draft Demo`, `Mock-Modus`.
- Do not show dashboard URLs/domains inside the app content.
- Do not foreground raw IDs or long technical readiness lists.
- Focus the screen on: video, caption, hashtags, disclosure, consent, Upload Draft result, redacted log.

A normal review page can remain the daily work surface; the recording page is the presentation surface.

## Guided recording flow

Use a calm 6-step flow:

1. Video prüfen — thumbnail/video, title, review link.
2. TikTok-Text prüfen — caption, hashtags, Synthetic media / AIGC disclosure.
3. Zustimmung — explicit checkbox confirming video/text/disclosure/upload-draft review.
4. TikTok-Entwurf erstellen — mock Upload Draft action only.
5. Ergebnis — `publish_id`, `upload_status`, `scope = video.upload`, `source = FILE_UPLOAD`, Upload Draft.
6. Protokoll — redacted request and response, endpoint, no secrets.

## QA checks

Before reporting success, verify:

- `/verification` loads and links to recording mode.
- `/verification/recording` and `/verification/recording?recording=1` load.
- The page is German and not overloaded.
- A demo video is visible; if needed, use the existing internal demo package rather than inventing data.
- Caption, hashtags and disclosure are visible.
- Consent toggles.
- Mock Draft button creates a new attempt.
- Latest attempt shows `publish_id`, `mock_uploaded_to_draft`, `video.upload`, `FILE_UPLOAD`.
- `/publish-logs?kind=tiktok_verification` shows the new attempt.
- Logs contain `[REDACTED]` and no `client_secret`, `access_token`, `refresh_token`, raw upload token, or unredacted upload URL.
- Browser console has no errors.
- Backend tests, lint, frontend build pass.

## Documentation to update

For this class of work, update or create:

- `docs/HANDOFF.md` — current decision and known risk.
- `docs/ROADMAP.md` — sprint status.
- `docs/tiktok-verification-domain-plan.md` — domain/Sandbox posture.
- `docs/tiktok-verification-demo-script.md` — recording URL and truthful script.
- `docs/screenrecording-runbook.md` — SimpleScreenRecorder preparation/export.
- `docs/tiktok-app-review-submission-draft.md` — conservative vs pragmatic variants.

## Side-effect guardrail

For rehearsal sprints, explicitly avoid:

- buying/configuring a new domain unless the user asks;
- setting Sandbox credentials unless available and requested;
- real TikTok upload;
- Direct Post;
- YouTube upload;
- website push;
- final Wan/render work.
