video-workbench/projects/2026-06-23-在路上/execution-plan.md

109 lines
8.0 KiB
Markdown

# Execution Plan
## Current Medium Branch
- Branch: MV shot-image production for later video assembly.
- Format: 16:9 horizontal.
- Production mode: image assets first; video generation/editing remains manual or semi-manual until explicitly automated.
- Prompt ownership: Codex owns final image prompts; GPT intake is source specification, not final prompt.
## Current Execution Focus
Prepare the execution base, not the full MV.
Immediate focus:
1. Build and validate the character anchor board.
2. Build and validate the style anchor board.
3. Use both anchors in a small visual test package.
4. Only after tests pass, expand into broader shot production.
## Materialization Targets
| Target | Required Output | Status |
| --- | --- | --- |
| Character anchor board | Main 16:9 board on shallow gray-white background | accepted v2 |
| Character transparent slices | Front full body, side full body, back full body, walking side, walking back | accepted v2-from-anchor set |
| Character labels | Short identity, clothing, prop, and boundary labels | pending |
| Style anchor board | 16:9 dark-gray board with A/B/C/D samples | accepted |
| C style retest | Dark muddy puddle / broken star reflection sample | accepted |
| Shot test package | S-01, S-10, S-46, S-47, S-51 | accepted |
## Small-Batch Strategy
Do not generate all 51 shots first.
Round 1 uses five shots because they test the system's biggest risks:
| Shot | Why It Is In Round 1 | Anchor |
| --- | --- | --- |
| S-01 | Opening landscape: proves world-before-person and main A composition. | A |
| S-10 | Steel canyon: proves city pressure without tech/UI drift. | B |
| S-46 | Muddy starlight: proves the soul image and C repair. | C |
| S-47 | Night road fire: proves restrained near-fire transition after C. | D |
| S-51 | Final wide: proves distant fire, no victory, no gathering, person remains small. | D |
Round 1 success means these are true:
- The traveler stays recognizable without becoming a portrait subject.
- A/B/C/D feel like one MV, not four unrelated styles.
- C is no longer sunrise/pretty reflection and has clear muddy starlight.
- D is warm but not camping, gathering, or victory.
- The output can support later prompt batching without rewriting the visual system.
## Current Round
- Round: R2 five-shot trial preparation.
- R0 completed: intake cleaned; project execution files initialized.
- R1 completed so far: v2 main character anchor accepted; identity lock approved for slice generation; five transparent slice candidates generated and rejected due identity drift from v2.
- R1 completed: v2 main character anchor accepted; v2-from-anchor transparent slice set accepted.
- R1 completed: C style retest accepted as `style-anchor-c-repair-v1.png`.
- R1 completed: common style anchor board accepted as `style-anchor-board-v1.png`.
- R2 completed: S-01 generated once and accepted by user.
- R2 completed: user waived intermediate prompt review for S-10; S-10 generated once and accepted by user.
- R2 completed: S-46 generated once and accepted by user.
- R2 completed: S-47 generated once and accepted by user.
- R2 completed: S-51 generated once and accepted by user.
- R2 completed: five-shot visual trial generated and accepted by user.
- R3 character-consistency workflow test completed: `s21-v3`, `s14-v2`, and `s25-v2` generated through the Advisor / visible-reference path and accepted by user. Quality route is usable; duplicate `Agent S-14` remains a historical mechanism defect from this run.
- R3 third-round workflow test completed: `session-04` generated `s33-v2` and `s06-v2` through a clean user-visible child session plus internal one-shot SubAgents. Both images were accepted by user; review files were absent as requested; no duplicate-worker defect was observed in this two-slide scope.
- R4 completed visually with mechanism warnings: clean child session `019ef8cf-4ab1-7b41-877b-979dc25b0a76` generated `s02-v2`, `s03-v2`, and `s04-v2`; user accepted all three images and review files were absent as requested. Mechanism is not a clean pass because brief/packet files were written by slide Agents rather than prewritten by the visible child session; `S-04` also has a worker-launch sequencing warning.
- R5 brief-ownership test completed: clean child session `019ef907-16b7-7a43-9924-227892aa62d3` generated accepted `s07-v2`, `s08-v3`, and `s09-v2` with child-owned brief/packet before worker launch for successful outputs. `s08-v2` remains incomplete transport-failure evidence and was retried append-only as `s08-v3`.
- Package-size trials completed through a user-authorized 4-slide package. `session-07` produced accepted `s11-v2`, `s12-v2`, and `s13-v2` with observed context 157K and elapsed time 30m5s. `session-08` mechanically completed `s15-v2` through `s18-v2`, but `s16-v2` failed visual acceptance because it did not achieve `横向大远景,路从画面一侧切向远方,人物极小` and was too similar to `s15`.
## Active Batch
Polling-based process trial is complete. Broad generation waits for the next user decision after R6 notification/wakeup test design.
No single-shot gate is active. The five-shot visual trial is accepted. The character-consistency workflow test is visually accepted for S-21, S-14, S-25, S-33, S-06, S-07, S-08, S-09, S-11, S-12, and S-13. R4 images for S-02, S-03, and S-04 are visually accepted but remain a mechanism-warning run because child-session brief ownership did not match the desired boundary. R5 successful outputs passed the child-owned brief/packet rule. `S-16/s16-v2` is not visually accepted and should be redone later as append-only repair.
Current broad-run issue report:
```text
slides/broad-generation-self-audit-v1.md
```
## Open Decisions
| Decision | Default |
| --- | --- |
| Character source face | Current stage does not use the real face; use a 50-year-old traveler based on the defined character system. |
| Character board size | 16:9 page, shallow gray-white background. |
| Character board scope | MVP can start with front/side/back full body plus half-body state; full version should add walking side/back and prop breakdowns. |
| Style board scope | MVP one-page A/B/C/D board; C should be marked as repaired / accepted. |
| Full shot production | Wait for next user decision after R6 notification/wakeup test. Current default route: per-shot brief/prompt trace restored, visible character shots use actual references, child sessions may handle up to 3 slides by default unless explicitly overridden, clean user-visible child sessions for orchestration, visible child writes brief/packet before worker launch, internal one-shot SubAgents for slide work, one slide/version has exactly one owning worker, and child sessions perform the completion gate before handoff. |
## Next Decision
R6 notification/wakeup test:
- Replace polling with a notification/wakeup mechanism if the current Codex tools support it: the main session sends the task and exits, then the child session completion activates or wakes the main session.
- Do not simulate notification by hidden parent polling. If no real activation/wakeup tool exists, report that as a mechanism blocker.
- Use R6 to redo `S-16` as append-only `s16-v3` or the next unused version.
- Required S-16 visual correction: horizontal extreme wide shot; road cuts from one side of the frame toward the distance; traveler is extremely small; result must clearly differ from `S-15`.
- Keep the quality route: `gpt-image-2` Advisor prompt/spec, active style master, active character registry when needed, and visible reference images loaded before generation.
- Keep the brief ownership rule: the visible child session writes and confirms `sNN-vN-brief.md` and the slide-agent packet before launching a one-shot slide worker.
- Keep append-only retry behavior: incomplete outputs such as `s08-v2` remain historical evidence and retries use the next unused version.
- Keep the duplicate-worker guard: one successful slide/version must have exactly one owning worker and one prompt/image/return target set.
- Keep main-session production behavior lightweight: read child handoff by default after notification/wakeup, and inspect details only on warning/blocked/failed.