| 1 | --- |
| 2 | description: Create Layout child workflow for a brand-neutral reusable page-structure workspace. |
| 3 | --- |
| 4 | |
| 5 | # Create Layout Workflow |
| 6 | |
| 7 | Enter this child workflow only after [`Create Template`](../create-template.md) dispatches `kind: layout`. |
| 8 | |
| 9 | ## Responsibility Boundary |
| 10 | |
| 11 | | Owner | Responsibilities | |
| 12 | |---|---| |
| 13 | | Create Template | Child-workflow dispatch plus the shared source taxonomy, `library` / `project` scope, confirmation gate, collision preflight, structured authoring contract, validation commands, registration, completion, and Generate PPTX handoff | |
| 14 | | Create Layout | Structure-only interpretation, layout-specific brief fields, brand-neutral `design_spec.md`, SVG roster, and layout-specific validation | |
| 15 | |
| 16 | **Hard rule — child workflow, not a top-level route**: Create Layout executes only inside Create Template. It reuses the parent workflow's Steps 1–8 and never creates a competing entry route or second confirmation gate. |
| 17 | |
| 18 | **Hard rule — brand-neutral structure only**: A layout owns canvas, page grammar, Master/Layout families, slot geometry, semantic text roles, alignment/wrapping/capacity behavior, page types, image behavior, density rhythm, and the SVG prototype roster. It owns no brand palette, typeface/weight identity, final resolved type scale, logo, voice, icon identity, communication objective, audience outcome, required narrative sequence, fixed scenario copy, or example content that downstream generation is expected to preserve. |
| 19 | |
| 20 | Neutral colors, safe fonts, and provisional sizes may appear in SVG prototypes so the structure is reviewable. They are preview values, not a locked identity segment or final project type scale, and must not be written as brand truth in `design_spec.md`. The reusable rule is the text role and its spatial behavior. Downstream `layout` scope resolves actual appearance from Brand, reading mode, and confirmed project typography; explicit `mirror` scope preserves the literal source formatting instead. |
| 21 | |
| 22 | ## Invocation Points |
| 23 | |
| 24 | 1. Use §1–2 below while executing Create Template Steps 1–3. |
| 25 | 2. After Create Template Step 4 preflights `<template_workspace>`, use §3 to author or materialize the layout workspace under the shared structured contract. |
| 26 | 3. Apply §4 in addition to Create Template Step 5, then continue through shared Steps 6–8. |
| 27 | |
| 28 | ## 1. Layout Input Interpretation |
| 29 | |
| 30 | Use Create Template Step 1 for source ingestion and internal creation-strategy feasibility. Interpret source evidence only for reusable structure: |
| 31 | |
| 32 | - Canvas dimensions, grid, zones, page taxonomy, repeated chrome, image placement, density rhythm, placeholder geometry, semantic text roles, alignment, wrapping, and capacity may become layout facts or suggestions. |
| 33 | - Colors, font families, branded weight choices, final absolute sizes, logos, voice, and icon style remain source context only. Do not copy them into the layout identity because a layout has no identity segment. |
| 34 | - A source scenario may inform the content shapes or delivery conditions the geometry can support. Do not turn that fit into an application contract. If the reusable artifact prescribes the objective, outcome, narrative sequence, boilerplate, or content policy, return to Create Template dispatch and select Create Deck. |
| 35 | - When the source is branded, state in plain language that Create Layout will omit the identity. The AI therefore derives an authored internal strategy. If the user wants the identity retained with the structure, return to Create Template dispatch and select Create Deck before the shared confirmation marker is emitted. |
| 36 | - Internally, `standard` and `fidelity` author a new Master/Layout/slot system. `mirror` may be derived only when the complete current source contract is already brand-neutral and application-neutral; it preserves validated structure and visual facts in a new workspace without modifying the source. Never ask the user to choose among these labels. |
| 37 | |
| 38 | Direct conversation text, pasted requirements, converted documents/websites, images, and supplied assets may define or illustrate reusable structure. In a mixed bundle, combine those channels without treating identity-only evidence as layout ownership. Exact user-authored instructions remain decisions whether they arrive in chat or a user-written brief file; vague prose remains suggested interpretation until the shared confirmation gate. |
| 39 | |
| 40 | ## 2. Layout Brief and Schema |
| 41 | |
| 42 | Add these child-owned requirements to Create Template Step 2: |
| 43 | |
| 44 | | Field | Requirement | |
| 45 | |---|---| |
| 46 | | Layout ID and display name | Required; `layout_id` is a filesystem-safe ASCII slug | |
| 47 | | Structural use cases | Required; describe content shapes and delivery settings the geometry can support, not communication objectives, audience outcomes, narrative sequence, or brand tone | |
| 48 | | Canvas | Required; exact format, dimensions, and `viewBox` | |
| 49 | | Page grammar | Required; page types, variants, grids, zones, semantic text roles, alignment/wrapping/capacity, density rhythm, and image behavior | |
| 50 | | Native structure | Required; Master families, Layout ownership, slot vocabulary, and zero-slot Layouts where intentional | |
| 51 | | Creation intent | Required as natural-language prose: what should remain recognizable, what should become reusable structure, and how broad the page vocabulary should be. The AI derives `replication_mode` internally from this intent and the evidence. | |
| 52 | | Identity stripping | Required when branded reference material exists; list the identity facts intentionally excluded | |
| 53 | |
| 54 | Write this structure-only schema: |
| 55 | |
| 56 | ```markdown |
| 57 | --- |
| 58 | layout_id: <confirmed slug> |
| 59 | kind: layout |
| 60 | category: general | scenario | government | special |
| 61 | summary: <one-line structural use case> |
| 62 | keywords: [<three-to-five structural tags>] |
| 63 | canvas_format: ppt169 |
| 64 | canvas_width: 1280 |
| 65 | canvas_height: 720 |
| 66 | canvas_viewbox: "0 0 1280 720" |
| 67 | replication_mode: standard | fidelity | mirror |
| 68 | native_structure_mode: structured |
| 69 | page_count: <N> |
| 70 | page_types: [cover, toc, chapter, content, ending] |
| 71 | --- |
| 72 | |
| 73 | # <Layout Name> — Design Specification |
| 74 | |
| 75 | ## IV. Signature Design Elements |
| 76 | ## V. Page Roster |
| 77 | ## VII. Placeholder Overrides |
| 78 | ``` |
| 79 | |
| 80 | `replication_mode` is required machine provenance, not a user-facing choice. Omit `Placeholder Overrides` when no override exists. Omit Template Overview, Color Scheme, Typography, Logo, Voice, and every other identity section. Do not write `primary_color`. |
| 81 | |
| 82 | `Signature Design Elements` describes only reusable structure, including text-role hierarchy and spatial behavior without locking the final font identity or type scale. `Page Roster` lists every SVG with its Master/Layout identity, picker name, intended content shape, and slot behavior. |
| 83 | |
| 84 | `category: scenario` is a discovery-fit label only. It does not authorize a |
| 85 | Template Overview or scenario-specific content policy. |
| 86 | |
| 87 | ## 3. Author or Materialize the Layout |
| 88 | |
| 89 | Follow Create Template Step 4 and the shared Template_Designer contract with `kind: layout`, `kind_dir: layouts`, and `id_key: layout_id` fixed. Do not ask the user to choose the kind again. |
| 90 | |
| 91 | The output is: |
| 92 | |
| 93 | ```text |
| 94 | <template_workspace>/ |
| 95 | ├── templates/ # design_spec.md + SVG prototypes |
| 96 | ├── images/ # optional structural/example bitmaps |
| 97 | ├── icons/ |
| 98 | │ └── imported/ # optional imported vectors |
| 99 | └── exports/ # conditional review evidence |
| 100 | ``` |
| 101 | |
| 102 | Every SVG is a complete preview and declares one root Master and Layout under the shared structured contract. For authored modes, neutral preview paint must remain replaceable downstream. For mirror, first prove the source contract already satisfies the complete Layout boundary, then preserve its structure and supported visuals exactly as allowed by Create Template. Never call removal or replacement of source identity or application rules “mirror”. |
| 103 | |
| 104 | ## 4. Layout Validation |
| 105 | |
| 106 | In addition to Create Template Steps 5–6, verify: |
| 107 | |
| 108 | - `templates/design_spec.md` contains `layout_id`, `kind: layout`, `summary`, canvas fields, `replication_mode`, `native_structure_mode: structured`, `page_count`, and `page_types`. |
| 109 | - `layout_id` matches the confirmed workspace ID in library scope. |
| 110 | - Signature Design Elements and Page Roster exist; Template Overview, application-contract language, and all identity sections do not. |
| 111 | - `primary_color`, brand palette, brand typeface/weight claims, final project type-scale claims, logo, voice, and icon-identity claims are absent; structural text roles and capacity rules may remain. |
| 112 | - Every SVG in the roster satisfies the shared Master/Layout/slot contract and the roster is bidirectionally complete. |
| 113 | - Neutral prototype paint is not described as a locked brand identity. |
| 114 | - `replication_mode: mirror` is rejected for any source that retains organization-specific identity or reusable application rules; use authored Layout mode or Create Deck instead. |
| 115 | |
| 116 | For library scope, Create Template validates and registers with: |
| 117 | |
| 118 | ```bash |
| 119 | python3 skills/ppt-master/scripts/register_template.py <layout_id> --kind layout --dry-run |
| 120 | python3 skills/ppt-master/scripts/register_template.py <layout_id> --kind layout |
| 121 | ``` |
| 122 | |
| 123 | For project scope, skip both commands. The exact workspace root becomes the next Generate PPTX Step 3 input; downstream identity remains a Strategist decision unless an explicit Brand or Deck workspace is also supplied. |
| 124 |