返回 ppt-master
executor-image.md
根目录 / skills / ppt-master / references / executor-image.md
1 > Default Generate also loads [`executor-base.md`](./executor-base.md). Quick
2 > Generate deliberately does not; this branch supplies its conditional image
3 > realization rules directly.
4
5 # Executor Image Branch
6
7 Conditional Executor authority for image status handling, placement, crop behavior, and template-bundled images.
8
9 **Trigger**: load for any image in §VIII, the lock, Quick Generate's active-context resource decisions, or a selected template.
10
11 ## 1. Image Handling
12
13 Handle images by status; enum and lifecycle: [`svg-image-embedding.md`](svg-image-embedding.md).
14
15 **Mode boundary**: Default Executor consumes only prepared §VIII/lock assets. Quick enters the same consume-only boundary at SVG authoring from prepared active-context resources. Derivatives already exist; native treatments remain SVG work.
16
17 | Status | Source | Handling |
18 |--------|--------|----------|
19 | **Existing** | User-provided | Reference images directly from `../images/` directory |
20 | **Generated** | Generated by Image_Generator | Reference from `../images/`; manifest-backed files load [`executor-web-image.md`](./executor-web-image.md) |
21 | **Sourced** | Web-acquired by Image_Searcher | Reference from `../images/`. **Read [`image_sources.json`](image-searcher.md) to decide attribution** — load [`executor-web-image.md`](./executor-web-image.md). |
22 | **Needs-Manual** | Acquisition or suitability remains unresolved | Default uses a placeholder until Step 7. Quick blocks every required row in this status; file presence alone does not bypass it. |
23 | **Placeholder** | Not yet prepared | Use dashed border placeholder |
24
25 **Reference syntax**: see [`svg-image-embedding.md`](svg-image-embedding.md).
26
27 **Template-bundled images**: [`apply-template-workspace.md`](../workflows/stages/apply-template-workspace.md) copies them into project `images/`. Outside `mirror`, reference `../images/<name>` and never copy a template SVG's bare sibling href: the rendered page lives in `svg_output/`. `mirror` ([`executor-structured.md`](./executor-structured.md) §1.1) keeps hrefs verbatim; export resolves them against `images/`.
28
29 **Default — active image integration (may override when plain placement is
30 stronger)**: Treat loaded [`image-layout-patterns.md`](./image-layout-patterns.md)
31 as vocabulary and [`image-layout-spec.md`](./image-layout-spec.md) as math, not
32 a quota or lock. A `#P...` suggestion is only a skeleton; deepen, simplify, or
33 combine it through the already-loaded [`svg-effects.md`](./svg-effects.md) and
34 [`native-shape-authoring.md`](./native-shape-authoring.md). Plain placement or a
35 regular grid remains valid when it communicates better. Preserve role/source,
36 must-use, crop/content, and explicit user/template constraints; expression-only
37 changes need no upstream rewrite.
38
39 **Mandatory — per-page image composition decision**: Using this already-loaded
40 branch, decide once immediately before geometry on every page containing an
41 image and keep the result only in active context:
42 `role → direction generator → parent contour → slots/rhythm → crop →
43 image-shape action → labels/overlays → depth/continuity`. Derive the relationship
44 from the communication job, hierarchy, copy, asset ratio/focus, and deck rhythm;
45 use `anchor`, `continue`, `bridge`, `overlap`, `reveal`, `echo`, or `register`
46 only when useful. Compare the resulting candidate with plain/`P`-only placement
47 and implement the stronger legal composition. Create no artifact or extra pass,
48 and do not reread the branch while its active context remains valid.
49
50 **Default — preserve the image job at final size (may override when the planned
51 job is texture only)**: Before accepting a narrow band, small placement, or crop,
52 keep the subject or relationship named by the image purpose recognizable at its
53 final on-slide size. If it collapses into color texture, enlarge or recompose it;
54 treat it as texture only when the upstream job permits that role.
55
56 **Reference — direction generators, not templates**:
57
58 | Generator | Behavior |
59 |---|---|
60 | `vector` | Progress slots along one shared movement vector |
61 | `shared-baseline` | Share a baseline while size, offset, or overlap changes systematically |
62 | `curve-spine` | Derive slots and turns from one continuous curve or folded path |
63 | `panel` | Subdivide one coherent tilted, stepped, or polygonal parent panel |
64 | `none/grid` | Retain calm plain placement or a regular grid |
65
66 **Default — coherent multi-image direction (may override when deliberate disorder
67 serves the communication job)**: Within one image group, derive slot positions,
68 crop edges, overlap, and any rotation from one primary direction generator.
69 Varied angles need one declared rhythm or collision rule; they are not a shortcut
70 to variety.
71
72 **Reference — motion-ready image layering, not a constraint**: For adopted §IX or an explicit focus, comparison, evidence, reveal-order, or cross-page requirement, decide during SVG authoring whether the final composition needs separate visible units. Keep ordinary stable framing/background static and wrap each independently revealed or continuing Slide-local unit in a descriptive direct-root `<g id>`; structured atoms/slots retain their boundaries. Existing units or a page transition may suffice. The motion stage owns effects, pairing, order, and timing.
73
74 **Hard rule — visible-layer timing**: Any crop, lens, scrim, comparison, evidence, or annotation layer required by an adopted motion plan MUST already exist in the final SVG without violating structural contracts. The later stage may regroup ordinary Slide-local content visual-equivalently, but cannot invent or modify missing visible content. If no legal existing unit can serve a non-binding suggestion, simplify it to available units, a page transition, or `none`; an explicit requirement that cannot be represented follows failure recovery.
75
76 **Hard rule — narrow visual-inspection scope**: Start with §VIII `Reference` plus dimensions. If one asset still leaves focal-safe crop, overlay contrast, a quiet region, or its planned subject relationship ambiguous, inspect only that asset/review copy once for placement. A `Generated` asset qualifies only when final placement depends on an ambiguity that its owned intent and dimensions cannot resolve; never routinely read generated images. Inspection cannot reopen selection, change identity/must-use, infer provenance, substitute the asset, or invent focus. If `adaptive` focus stays uncertain, use `meet`; conflicting binding constraints return upstream.
77
78 **Placeholder**: Dashed border `<rect stroke-dasharray="8,4" .../>` + description text
79
80 **Crop policy**: read the §VIII row and matching lock projection. On every slide that uses a `crop=no-crop` source (or a legacy trailing `| no-crop`), retain one visible complete instance using one of the nine legal anchors with `meet`, never `none`, and no `clip-path`, `mask`, clipping overflow, or nested `<svg>` crop viewport. An auxiliary same-slide detail or lens may crop the same source only while that complete instance remains visible. `crop=adaptive` permits but never requires cropping; choose `meet` or focal-safe `slice` from purpose, ratio, focus, and container. A missing or conflicting `source` / `pattern` / `crop` projection returns upstream instead of being inferred during execution; the accurately projected `pattern` remains a preferred expression that may be adopted, adapted, or declined without rewriting the lock.
81
82 **Hard rule — same-source addressable crops, only when adopted**: A layout
83 suggestion, including pattern `#M1-11`, never activates this transport. Pattern
84 `#M1-09` is a separate deliberate-offset treatment and never claims registered
85 or Morph continuity. Apply this transport only when independent crops must
86 preserve one exact scene map or an explicit editable/Morph requirement needs
87 them. Once active, reuse one exact
88 `href` without slice assets. Give every independent/Morph object a stable
89 page-unique id and a distinct nested crop wrapper under
90 [`svg-effects.md`](./svg-effects.md) §6.5. Plain rectangles need no crop marker;
91 shaped frames put `data-pptx-crop="1"` on the wrapper and a matching
92 `userSpaceOnUse` clip on its inner `<image>`, never the wrapper. Repeated crops
93 or SVG/PPT visual drift fail. Derive every wrapper `viewBox` from one shared
94 source-to-page transform over the union of the visible containers. Never run
95 `cover` / focal cropping independently per container: different container
96 positions and heights must change the source-unit `x`, `y`, `width`, and
97 `height` by the same union-relative mapping, so the gaps remove pixels without
98 rescaling the scene. A compound clip on one `<image>` is pattern `#M1-10`, not a
99 substitute when the objects must remain independently editable or Morphable.
100
100 lines MARKDOWN