video-workbench/handoff/2026-06-25-on-the-road-form...

252 lines
11 KiB
Markdown

# On The Road Formal Production Handoff
Date: 2026-06-25
Project:
```text
projects/2026-06-23-在路上
```
Purpose:
Use this as the entrypoint for the next clean main session after R7. The project has completed formal production-light shot-image generation for the current 51-shot table.
## Current Status
The workflow test line is closed for normal production, and the planned shot-image production pass is complete.
`project.md` now records:
```text
Workflow phase: production-light
Lifecycle phase: assembly-closeout
```
Accepted production route:
- Main session talks with the user and defines scope.
- Main session creates a clean named child session, with UI title beginning `子会话:...`.
- Child session directly writes each slide's brief and prompt, then generates images sequentially.
- Child session updates `slides/slides.md`, completes narrow required checks, writes a compact `child-session-handoff.md`, and callbacks the parent as its final action.
- After a successful callback, the child session must not write or verify additional project files.
- No Agent/SubAgent by default.
- No review file by default.
- No slide-agent packet or return receipt by default.
- No routine final completeness audit.
- Keep write-before version scanning, append-only versions, and overwrite disallowed.
R7 evidence:
- `session-12`: `S-26/S-27/S-28`, Agent-backed production-light, accepted by user, 25m48s / 134K tokens.
- `session-13`: `S-29/S-30/S-31`, direct child session without Agent/SubAgent, accepted by user, 10m32s / 114K tokens.
`session-13` is the current formal production model.
Capacity validation after R7:
- `session-01` under `tasks/2026-06-25-production-capacity-validation`: `S-32/S-34/S-35/S-36/S-37`, direct child session without Agent/SubAgent, accepted by user.
- User observed callback at about 152K tokens / 58% context and final usage after post-callback document/check work at about 164K tokens / 63% context.
- Mechanism warning: this validation exposed a callback-order defect because the child wrote/checked after callback. Future child prompts must state that callback is the final action.
- `session-01` under `tasks/2026-06-25-8slide-compression-validation`: `S-38/S-39/S-40/S-41/S-42/S-43/S-44/S-45`, direct child session without Agent/SubAgent, accepted into production-pass by production-stage default.
- User observed final package usage at 174K tokens / 67% context and 38m37s elapsed.
- The callback-final contract was verified: no child project writes or checks were observed after the callback/final child response.
- Ordinary production-light package size is now up to 8 slides.
- `session-01` under `tasks/2026-06-25-final-production-s48-s50`: `S-48/S-49/S-50`, direct child session without Agent/SubAgent, completed with `problems: none` and `needs_user: none`.
- Parent verification found expected brief/prompt/image files present, exact review files absent, `slides/slides.md` updated, and no post-callback child writes.
## New Session Load Order
For a cleanup / discussion-only new session, load in this order:
```text
AGENTS.md
handoff/2026-06-25-on-the-road-formal-production-handoff.md
projects/2026-06-23-在路上/project.md
projects/2026-06-23-在路上/execution-plan.md
projects/2026-06-23-在路上/slides/slides.md
```
For a session that may dispatch production image generation, then load:
```text
VIDEO_WORKBENCH.md
docs/workflows/project-lifecycle.md
docs/workflows/slide-task-orchestration.md
docs/workflows/slide-task-templates.md
projects/2026-06-23-在路上/visual-system/visual-system.md
projects/2026-06-23-在路上/visual-system/style/style-prompt-master.md
projects/2026-06-23-在路上/visual-system/characters/character-reference-registry.md
```
For the actual assigned slide scope, load only the relevant source rows and files:
```text
projects/2026-06-23-在路上/intake/阶段五-镜头清单骨架.md
projects/2026-06-23-在路上/intake/阶段五-核心单镜.md # only for S-10/S-46/S-51 or if referenced
projects/2026-06-23-在路上/slides/sNN/
```
Do not read old session directories, old handoffs, or the external discussion record unless investigating a specific inconsistency. This handoff supersedes the R7 governance-simplification handoff for normal production.
## If The User Directly Says "生图"
First classify the request:
1. Clear slide scope: proceed with that named scope.
2. Clear natural-language scope: map it to slide IDs using `slides/slides.md`, then confirm only if mapping is ambiguous.
3. No scope, just "继续生图" or equivalent: use the "Default Next Scope" section below.
4. Repair / local problem / quality concern: ask whether to use `production-light` retry or `test/audit` override.
Do not start generation without an explicit slide scope unless the user clearly authorizes "continue from the current next production scope".
## Default Next Scope
Accepted / production-pass now includes the current 51-shot table. Key late-production coverage:
```text
S-26/S-27/S-28/S-29/S-30/S-31/S-32/S-33/S-34/S-35/S-36/S-37/S-38/S-39/S-40/S-41/S-42/S-43/S-44/S-45/S-46/S-47/S-48/S-49/S-50/S-51
```
The remaining not-started story-order items are:
```text
none
```
Reason:
- `S-32/s32-v2`, `S-34/s34-v2`, `S-35/s35-v1`, `S-36/s36-v1`, and `S-37/s37-v1` were accepted by user in the capacity validation package.
- `S-33` is already accepted as `s33-v2`; skip by default.
- `S-38` through `S-45` are accepted into the production pass after the 8-slide compression validation.
- `S-46`, `S-47`, and `S-51` are already accepted anchor/trial outputs.
- `S-48` through `S-50` were completed in the final production direct-child package.
If the user says "直接继续正式生产" with no other scope, do not dispatch a new image-production package. Report that the current shot-image table is complete and ask whether to proceed to assembly / export / closeout or to name a slide for append-only repair.
```text
no remaining default production scope
```
For append-only repair/retry, the child session must still scan each slide folder before writing; any expected versions are not authority.
## Scope Rules
Use `slides/slides.md` as the source of truth for production scope.
Closed by default:
- status `accepted`;
- status `production-pass`;
- rows explicitly recorded as user accepted in current project/task records.
Open by default:
- status `not started`;
- status `generated` without user acceptance;
- broad-run candidate only;
- incomplete / paused evidence;
- rejected historical evidence;
- repair requested by user.
Important cleanup note:
Some older rows still use wording such as `generated / session-07 complete` even where project/task records say the user accepted the images. The next cleanup pass should normalize these statuses before large-scale batching. Until then, for any ambiguous row, prefer the latest explicit user-acceptance record in `project.md`, `execution-plan.md`, `task-log.md`, and `slides.md`.
Default child-session package size:
```text
maximum 8 ordinary production slides
```
Use 1-3 slides for identity-heavy, repair-heavy, core-risk, or context-expensive scopes. Split larger scopes into multiple child sessions unless the user explicitly authorizes a larger package.
## Production Dispatch Defaults
When dispatching a production-light package, create one clean child session.
Title format:
```text
子会话:在路上 S48-S50 production-light
```
Use a concise parent instruction with these fields:
```text
Project: projects/2026-06-23-在路上
Line: production-light
Topology: direct child session; no Agent/SubAgent
Worker profile: video-slide-production
Running mode: prompt and generate
Review mode: none
Scope: <S-NN list>
Callback target: <current parent thread id>
Write policy: append-only; overwrite allowed: no
Required source of truth: project.md, execution-plan.md, slides/slides.md, visual-system/
Output: brief, prompt, image, slides.md update, compact child-session-handoff.md
Callback payload: status, topology, resolved versions, handoff path, image paths, problems, needs_user
Callback order: callback is the child session's final action after all allowed writes, narrow checks, and handoff work; do not write or verify project files after a successful callback
```
The child must:
- scan existing `slides/sNN/sNN-v*-*` files before choosing each version;
- stop on artifact collision instead of overwriting;
- create no `sNN-vN-review.md` unless the parent explicitly changes review mode;
- create no packet/return files unless the parent explicitly switches to test/audit, repair, or Agent-backed mode;
- use `gpt-image-2` Advisor / host-native workflow;
- load real visible-context image references before generation when identity or reference control matters;
- keep prompts compact and generation-oriented;
- update `slides/slides.md` for completed outputs;
- write compact handoff before callback;
- send callback as the final child action and perform no project writes/checks afterward.
The parent must:
- not poll the child thread routinely;
- not audit prompt/image/ledger details after a clean callback;
- inspect details only on `blocked`, `failed`, `warning`, collision, explicit user audit, or ambiguous scope/status.
## Test / Audit Override
Use `test/audit` only when:
- the user asks to investigate a workflow problem;
- a generated image fails and needs diagnosis rather than a simple append-only retry;
- a new core visual rule needs proving;
- external review / local review / Agent isolation is explicitly requested;
- duplicate worker, collision, missing reference, or tool failure occurs.
In `test/audit`, Agent/SubAgent, packet/return files, local review, and fuller completion gates are allowed. They are not the formal production default.
## Current Known Boundaries
- Do not invoke CCPE.
- Do not ask GPT V2 for final prompts.
- Do not call MiniMax MCP or external vision/review services unless explicitly authorized for the task.
- Do not regenerate accepted slides by default.
- Do not reuse broad-run candidate images as accepted finals unless the user explicitly accepts them.
- Do not backfill old broad-run prompt/brief files as if they were original generation inputs.
- Do not overwrite existing artifacts.
## Cleanup Topics For The Next Session
Likely useful cleanup / discussion items before or during production:
- Normalize old `slides.md` statuses where user acceptance is recorded elsewhere but row status still says `generated`.
- Decide whether broad-run `s32-v1` and `s34-v1` should be accepted as candidates or superseded by formal append-only production versions.
- Consider whether `S-15/S-17/S-18` are merely generated historical evidence or should be reviewed/accepted/retried before final assembly.
- Keep R7 production-light rules; do not reopen the Agent/default-governance debate unless a new failure appears.
## Stop Conditions
Stop and ask the user if:
- the requested slide scope cannot be mapped cleanly;
- the next scope would include an already accepted slide;
- a target output path already exists;
- required character/style references cannot be loaded;
- the user request implies review/audit but does not say which line to use;
- the child callback reports `blocked`, `failed`, or `warning`.