# Character Consistency Test ## Status - Task id: `2026-06-24-character-consistency` - Worker profile: `video-slide-production` - Running mode: `prompt and generate` - Status: R7 production-light route accepted; `session-13` direct-child/no-Agent package for `S-29/S-30/S-31` is the formal production default - Child session reuse test: passed for `session-04` continuation (`S-33` then `S-06` in the same clean child thread) - Deprecated child session id: `019ef77d-552b-7343-abe4-88921b35d7ea` (do not reuse) - Session-02 child-session id: `019ef7ca-413a-7662-9633-7fb126b7ef35` - Session-02 resolved version: `s21-v2` (runtime fallback; no prompt/image) - Session-03 resolved version: `s21-v3` - Thread-level child test: `session-03` - Session-03 child thread id: `019ef7d2-1a7f-7a90-8c04-0098239dfe0f` - Session-03 slide-agent thread id: `019ef7d6-3ff6-7213-b68c-fd646e39f1d2` - Session-03 continuation recorded `Agent S-14`: `019ef803-95d7-7411-8d3c-c7f2f68a32e7` - Session-03 duplicate `Agent S-14` observed by parent: `019ef803-328a-7e40-a0b0-0333c6b5fc6c` - Session-03 continuation `Agent S-25`: `019ef803-e757-7041-8f4a-fc9dfce23bbd` - Session-04 child thread id: `019ef876-c5b2-7202-b204-774cb5fb95fd` - Session-04 resolved versions: `s33-v2`, `s06-v2` - Session-04 `Agent S-33`: `019ef87a-3aa1-75a2-a97c-de8f57e234e1` - Session-04 `Agent S-06`: `019ef886-8797-7243-9427-d45065fcfc47` - Session-06 child thread id: `019ef907-16b7-7a43-9924-227892aa62d3` - Session-06 accepted versions: `s07-v2`, `s08-v3`, `s09-v2` - Session-06 `Agent S-07`: `019ef90a-422b-7333-9021-f19b8dd1c0b7` - Session-06 incomplete `Agent S-08` attempt: `019ef91a-9be1-7642-8f67-f9df7bb055f0` (`s08-v2` transport failure; prompt only) - Session-06 retry `Agent S-08`: `019ef927-d480-7252-9650-8b0670f877d7` - Session-06 `Agent S-09`: `019ef92d-fa13-7053-aec9-fa8abb75f8d2` - Session-07 child thread id: `019ef943-52af-7893-b758-199873c94b7a` - Session-07 accepted versions: `s11-v2`, `s12-v2`, `s13-v2` - Session-07 `Agent S-11`: `019ef948-aa2e-7422-b5eb-f2385958f92d` - Session-07 `Agent S-12`: `019ef94e-beef-72e2-ab88-05cf00739e7e` - Session-07 `Agent S-13`: `019ef955-16cb-7532-ad1f-2d5447ad90f1` - Session-08 child thread id: `019ef969-66e7-7c52-a437-045371668d41` - Session-08 generated versions: `s15-v2`, `s16-v2`, `s17-v2`, `s18-v2` - Session-08 visual result: `s16-v2` not accepted; repair deferred to R6 - Session-09 child thread id: `019ef9bc-fe96-75b3-b902-5d5ef95feca3` - Session-09 parent callback target: `019ef9b5-cc39-7a42-91b1-f9b0852dc95e` - Session-09 generated version: `s16-v3` - Session-09 result: callback-only parent wakeup observed; completion gate `pass`; user accepted `s16-v3-image.png` - Session-10 child thread id: `019ef9d0-4914-7ea0-8935-bfd9bfc1aad4` - Session-10 parent callback target: `019ef9b5-cc39-7a42-91b1-f9b0852dc95e` - Session-10 scope: `S-19`, `S-20`, `S-22`, `S-23` - Session-10 result: user paused after `S-20` worker boundary violation; `s19-v2` accepted; `s20-v2`, `s22-v2`, and `s23-v2` are incomplete evidence - Session-11 child thread id: `019ef9f8-8c34-77a3-82af-9a25beb2c723` - Session-11 parent callback target: `019ef9b5-cc39-7a42-91b1-f9b0852dc95e` - Session-11 scope: `S-20`, `S-22`, `S-23`, `S-24` - Session-11 result: completion gate `pass`; generated `s20-v3`, `s22-v3`, `s23-v3`, `s24-v2`; user accepted all four images - Session-12 metric: user observed 25m48s / 134K tokens for 3 slides with Agent still used. - Session-13 metric: user observed 10m32s / 114K tokens for 3 slides with direct child session and no Agent/SubAgent. - Artifact policy: append-only next slide version; overwrite disabled by default ## R7 Production-Light Active Scope - Line: `production-light` - Worker profile: `video-slide-production` - Running mode: `prompt and generate` - Review mode: `none` - Scope: `S-26/S-27/S-28` - Expected versions from current slide folders: `s26-v2`, `s27-v2`, `s28-v2` - Child session: `session-12` clean visible Codex child thread `019efbb4-b366-7de3-8e02-01183b3d0b13` - Parent callback target: `019efb9f-ece2-78d2-ba6a-4ca1dcfe3244` - Write policy: append-only; overwrite allowed: no - Production rule: generated images are production-pass outputs by default; no per-image user review gate - Parent consumption rule: read compact child handoff after callback; inspect prompt / return / image details only on `blocked`, `failed`, `warning`, artifact collision, duplicate worker, or explicit user audit request - Status: complete; callback received; completion gate `pass`; outputs recorded as production-pass by task rule; user observed 25m48s / 134K tokens ## Direct-Child Production-Light Test Scope - Line: `production-light` - Topology: `main session -> child session directly`; no Agent / SubAgent - Running mode: `prompt and generate` - Review mode: `none` - Scope: `S-29/S-30/S-31` - Expected versions from current slide folders: `s29-v2`, `s30-v2`, `s31-v2` - Child session: `session-13` clean visible Codex child thread `019efbd8-f75d-7512-9952-aa3528fde581` - Parent callback target: `019efb9f-ece2-78d2-ba6a-4ca1dcfe3244` - Write policy: append-only; overwrite allowed: no - Test purpose: measure real time and context/token use when the child session directly writes brief, prompt, image, slides table, and compact handoff without Agent, packet, return receipt, review, or final verification pass. - Status: complete; callback received; outputs recorded as production-pass by task rule; user accepted all three images and observed 10m32s / 114K tokens. This direct-child topology is now the formal production default. ## Formal Production Default - Project phase source: `project.md` records `Workflow phase: production-light`. - Default child session title: `子会话:`. - Default topology: main session -> named child session directly. - Default child scope: up to 3 slides unless user explicitly overrides. - Default artifacts: `sNN-vN-brief.md`, `sNN-vN-prompt.md`, `sNN-vN-image.png`, `slides.md` status update, and compact child handoff. - Default omissions: no review file, no Agent/SubAgent, no packet/return receipt, no routine final verification pass. - Retained guard: scan target slide folder before writing, choose next unused version, and keep overwrite disabled. ## User Instructions Latest third-round test instruction: - Step 1: start a clean child session and send the S-33 production request, with no review. - Step 2: continue the same child session and send the S-06 production request, with no review. - Main-session checks focus on child-session startup, internal `Agent` / `SubAgent` operation, and whether the prompt contains character and style references. - User checks final image acceptability. Earlier reset instruction after S-05: Run the character-consistency workflow as a process and identity-consistency test. Earlier `s05` work exposed two workflow problems: ```text 1. The child session did not start the slide-agent itself. 2. `s05-v1-image.png` was overwritten even though a broad-run candidate already existed. ``` The reset rule for the next run is: - do not reuse child session `019ef77d-552b-7343-abe4-88921b35d7ea`; - start a new child session; - require the new child session to start the single-slide `S-21` agent itself; - use a new slide artifact version resolved from existing `slides/s21/s21-v*-*` files; - do not overwrite existing slide artifacts; - explicitly disable review for this `S-21` test so the workflow can verify that no review file is created when review is disabled. ## Slide Scope Completed previous tests: ```text s05 s21 s14 s25 ``` Completed `session-04` third-round test: ```text s33 s06 s07 s08 s09 s11 s12 s13 ``` Completed R7 production-light trials: ```text S-26/S-27/S-28 as session-12, prompt and generate, review: none, Agent-backed production-light. S-29/S-30/S-31 as session-13, prompt and generate, review: none, direct child/no-Agent. No active authorized scope; wait for next production decision. ``` ## Child Session Split ```text session-01: historical previous attempt; do not reuse session-02: s21 fallback evidence only; no prompt/image session-03: s21 accepted -> s14/s25 accepted; duplicate S-14 worker defect recorded session-04: clean child thread; s33-v2 then s06-v2 accepted; mechanism pass for this scope session-06: clean child thread; s07-v2 accepted, then s08-v3 and s09-v2 accepted; s08-v2 preserved as incomplete transport-failure evidence session-07: clean child thread; completed and user accepted S-11/S-12/S-13 as the first direct 3-slide package test session-08: clean child thread `019ef969-66e7-7c52-a437-045371668d41`; S-15/S-16/S-17/S-18 as first direct 4-slide package test; flow gate pass, S-16 visual repair deferred session-09: clean child thread `019ef9bc-fe96-75b3-b902-5d5ef95feca3`; R6 Phase 1 callback-only S-16 repair generated `s16-v3`; completion gate pass, user accepted image session-10: clean child thread `019ef9d0-4914-7ea0-8935-bfd9bfc1aad4`; R6 Phase 2 first 4-shot package for S-19/S-20/S-22/S-23; paused by user after S-20 worker boundary violation; s19-v2 accepted, remaining v2 items incomplete evidence session-11: clean child thread `019ef9f8-8c34-77a3-82af-9a25beb2c723`; R6 Phase 2 retry package for S-20/S-22/S-23/S-24; callback received, completion gate pass, user accepted all four images session-12: clean child thread `019efbb4-b366-7de3-8e02-01183b3d0b13`; R7 Agent-backed production-light package for S-26/S-27/S-28; user accepted all three images session-13: clean child thread `019efbd8-f75d-7512-9952-aa3528fde581`; R7 direct-child/no-Agent production-light package for S-29/S-30/S-31; user accepted all three images; formal production default ``` Current `session-03` continuation generated `s14-v2` and `s25-v2` after user accepted `s21-v3-image.png`; user then accepted both images and closed the test. The mechanism result is not a clean pass because two S-14 workers were created for one slide/version. `session-04` was created after the carrier rule was corrected to use a clean user-visible child thread, not a forked/inherited-context thread. It received S-33 first, then S-06 as a continuation in the same child thread. Session-04 mechanism result: - child session was visible to user and recorded as `019ef876-c5b2-7202-b204-774cb5fb95fd`; - child session started one internal one-shot worker for each slide: `Agent S-33` and `Agent S-06`; - each worker handled exactly one slide and resolved the next unused version before writing; - no `s33-v2-review.md` or `s06-v2-review.md` exists; - prompts record `gpt-image-2` Advisor / host-native mode plus style and character reference inputs; - user accepted both generated images. Continuation rule now validated for this two-slide scope: - use the same clean child thread only inside the user-approved task scope; - child thread must start one separate one-shot slide worker per slide; - do not reuse or continue a previous slide worker; - each worker handles exactly one slide; - each slide resolves the next unused version by scanning existing files; - do not overwrite existing broad-run or accepted images. Session id record: ```text session-01 child session agent id: 019ef77d-552b-7343-abe4-88921b35d7ea (deprecated / do not reuse) session-02 child session agent id: 019ef7ca-413a-7662-9633-7fb126b7ef35 session-03 child thread id: 019ef7d2-1a7f-7a90-8c04-0098239dfe0f session-03 Agent S-21 thread id: 019ef7d6-3ff6-7213-b68c-fd646e39f1d2 session-03 recorded Agent S-14 thread id: 019ef803-95d7-7411-8d3c-c7f2f68a32e7 session-03 duplicate Agent S-14 thread id observed by parent: 019ef803-328a-7e40-a0b0-0333c6b5fc6c session-03 Agent S-25 thread id: 019ef803-e757-7041-8f4a-fc9dfce23bbd session-04 child thread id: 019ef876-c5b2-7202-b204-774cb5fb95fd session-04 Agent S-33 id: 019ef87a-3aa1-75a2-a97c-de8f57e234e1 session-04 Agent S-06 id: 019ef886-8797-7243-9427-d45065fcfc47 ``` Continuation result: - `s14-v2-prompt.md`, `s14-v2-image.png`, and `s14-v2-slide-agent-return.md` exist; no `s14-v2-review.md` exists. - `s25-v2-prompt.md`, `s25-v2-image.png`, and `s25-v2-slide-agent-return.md` exist; no `s25-v2-review.md` exists. - `s14` prompt evidence records `gpt-image-2` Advisor / host-native mode, visible side/front character refs, and style module `B | 高位观察`. - `s25` prompt evidence records `gpt-image-2` Advisor / host-native mode, visible side/front/body refs, and style module `A | 清晨泥泞旷野` adapted for dust/detail. - User accepted both `s14-v2-image.png` and `s25-v2-image.png`. - Defect: child handoff records only `Agent S-14` `019ef803-95d7-7411-8d3c-c7f2f68a32e7`, but parent thread inspection also found duplicate `Agent S-14` `019ef803-328a-7e40-a0b0-0333c6b5fc6c`; the S-14 return/image source path records the duplicate thread folder. Treat step 2 as generated-with-defect, not as workflow pass. Session-04 result: - `s33-v2-brief.md`, `s33-v2-prompt.md`, `s33-v2-image.png`, and `session-04/returns/s33-v2-slide-agent-return.md` exist; no `s33-v2-review.md` exists. - `s06-v2-brief.md`, `s06-v2-prompt.md`, `s06-v2-image.png`, and `session-04/returns/s06-v2-slide-agent-return.md` exist; no `s06-v2-review.md` exists. - `s33` prompt evidence records `gpt-image-2` Advisor / host-native mode, A/D-adjacent style calibration, and visible side/front/master character refs. - `s06` prompt evidence records `gpt-image-2` Advisor / host-native mode, style module `A / Landscape-Led Road`, and visible back/walking character refs. - User accepted both `s33-v2-image.png` and `s06-v2-image.png`. - Mechanism pass: this run used a clean child session and one distinct internal SubAgent per slide; no duplicate worker was observed in this scope. ## Shared Context - `AGENTS.md` - `VIDEO_WORKBENCH.md` - `docs/workflows/slide-task-orchestration.md` - `docs/workflows/slide-task-templates.md` - `projects/2026-06-23-在路上/project.md` - `projects/2026-06-23-在路上/execution-plan.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` - `projects/2026-06-23-在路上/intake/阶段五-人物一致性单镜.md` - `projects/2026-06-23-在路上/slides/slides.md` - `projects/2026-06-23-在路上/slides/broad-generation-self-audit-v1.md` - `investigations/2026-06-24-s14-reference-capable-generation/reviews/summary-and-rule-implications.md` ## Visual-System Usage - Style continuity must use `visual-system/style/style-prompt-master.md`. - Character continuity must use `visual-system/characters/character-reference-registry.md`. - Reference-capable generation must use the validated host built-in reference-by-visible-context path: - write the prompt/spec through the `gpt-image-2` Skill Advisor workflow; - load the real reference image into the conversation context before generation; - call host `image_gen` with the loaded image assigned a role such as `Image 1`; - record the input path, output path, and reference-path caveat in the compact handoff or task status; only Agent-backed test/audit or repair runs need a return. ## Rules - Do not invoke CCPE. - Do not ask GPT V2 for final prompts. - Do not use Minimax MCP or other external review services. - Do not treat old broad-run images as accepted finals. - Do not generate visible-character identity shots from text-only prompts. - Do not use archived character or style references unless explicitly reopened. - When a slide agent is used, it handles exactly one slide. - Child sessions and any slide agents run sequentially. - In Agent-backed test/audit, repair, or exception runs, one slide/version must have exactly one owning slide-agent. A child session must not create two workers with the same packet and same output targets; prompt/image/return ownership must stay with the same worker id. - Child-session capacity for formal production-light defaults to maximum 3 slides per child session unless the task plan explicitly changes it. - Child session carrier rule: production-light uses clean named Codex child/session threads visible to the user and recorded by thread id. The child directly writes brief/prompt/image/status/handoff by default. Slide agents are reserved for test/audit, repair, explicit review, exception, or isolated single-slide work. - Production child sessions must start as clean user-visible threads. Do not use forked or inherited-context threads unless the user explicitly requests inherited context. - Main-session production wait rule: callback-only by default. The parent dispatches, records the callback target, and stops routine polling. Time-based polling schedules are fallback only when callback tooling is unavailable or the user explicitly requests polling for a named run. - Parent-facing heartbeat/status updates should not trigger extra child-thread inspection in routine production. - Production-light closeout is minimal: version scan, no overwrite, image paths/status recorded, review absent when `review: none`, compact handoff before callback. The fuller completion gate is for test/audit, repair, explicit review, or exception scopes. - Slide Agents, when used, are one-shot and become terminal / closed after return; do not continue or reuse them. - Main session records the new child session id so later slides can be sent to the same child session after user approval. - Resolve the slide artifact version before each slide run by scanning existing `slides/sNN/sNN-v*-*` files. - Do not overwrite existing slide artifacts. If any planned target file already exists, stop and report an artifact collision. - Do not backfill missing prompt or brief files for old broad-run images as if they were original generation inputs. - In production-light, `sNN-vN-review.md` should not be produced unless the task plan is changed. ## Expected Outputs Current production-light expected outputs: ```text projects/2026-06-23-在路上/slides/sNN/sNN-vN-brief.md projects/2026-06-23-在路上/slides/sNN/sNN-vN-prompt.md projects/2026-06-23-在路上/slides/sNN/sNN-vN-image.png projects/2026-06-23-在路上/slides/slides.md update projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-NN/child-session-handoff.md ``` Do not expect `sNN-vN-review.md`, slide-agent packet files, or slide-agent return files in production-light unless the task explicitly overrides the default. Legacy session-04 mechanism-test task records: ```text projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/task-plan.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/task-log.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/child-session-plan.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/child-session-handoff.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/child-session-continuation-s06-plan.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/child-session-continuation-s06-handoff.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/worker-launch-ledger.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/packets/s33-v2-slide-agent-packet.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/packets/s06-v2-slide-agent-packet.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/returns/s33-v2-slide-agent-return.md projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/returns/s06-v2-slide-agent-return.md ``` Legacy session-04 slide records: ```text projects/2026-06-23-在路上/slides/s33/s33-v2-brief.md projects/2026-06-23-在路上/slides/s33/s33-v2-prompt.md projects/2026-06-23-在路上/slides/s33/s33-v2-image.png projects/2026-06-23-在路上/slides/s06/s06-v2-brief.md projects/2026-06-23-在路上/slides/s06/s06-v2-prompt.md projects/2026-06-23-在路上/slides/s06/s06-v2-image.png ``` ## Historical User Review / Sampling Plan These reporting gates are closed historical test notes. Production-light now defaults to no per-image user review; user review happens only by explicit sampling, repair request, or test/audit override. After `s21` generation, stop and report: - new child session id; - `S-21` slide-agent id; - files written; - resolved output version; - whether the child session started `Agent S-21` itself; - whether review was correctly suppressed; - whether the prompt used `gpt-image-2` Advisor, active character reference, and the D style module; - whether the same child session should receive `s14` and `s25` next. For the `s14` / `s25` continuation, report: - whether the existing child thread continued work; - `Agent S-14` and `Agent S-25` thread ids; - whether the two new agents are separate from `Agent S-21`; - files written for `s14-v2` and `s25-v2`; - whether prompts used `gpt-image-2` Advisor and active character/style references; - whether review files were or were not produced, matching the continuation packet rule; - whether generation completed for both slides. This reporting gate is closed for `session-03`: both images were accepted by the user, review files were correctly absent, and the duplicate-worker defect was carried forward into the next mechanism test. For the `session-04` S-33 / S-06 test, report: - whether the child session was clean and user-visible rather than forked from parent context; - `session-04` child thread id; - `Agent S-33` and `Agent S-06` ids; - whether S-06 continued the same child session without reusing `Agent S-33`; - files written for `s33-v2` and `s06-v2`; - whether prompts used `gpt-image-2` Advisor and active character/style references; - whether review files were or were not produced, matching the no-review packet rule; - whether generation completed and user accepted both images. This reporting gate is closed for `session-04`: the user confirmed the mechanism checks passed and accepted both `s33-v2-image.png` and `s06-v2-image.png`. ## Stop Conditions - Required reference image cannot be loaded into the conversation context. - `gpt-image-2` mode check no longer returns a host/advisor path. - Host image generation cannot be called. - Generated image cannot be copied into the project slide folder. - Any planned output path already exists and overwrite is not explicitly authorized. - The child reports `blocked`, `failed`, or `warning`, or a generated result is later judged unusable and needs an append-only retry.