| 1 | # Template Resources |
| 2 | |
| 3 | ## Reusable template kinds |
| 4 | |
| 5 | Brand, Style, Layout, and Deck are independent template kinds, not stages of one |
| 6 | inheritance hierarchy. |
| 7 | |
| 8 | | Kind | Owns | Does not own | Discovery index | |
| 9 | |---|---|---|---| |
| 10 | | [`brands/`](./brands/) | Identity: color, typography, logo, voice, icon style | Page structure or SVG roster | [`brands_index.json`](./brands/brands_index.json) | |
| 11 | | [`styles/`](./styles/) | Direction/method: reusable communication method, visual language, composition rhythm, and information-expression defaults | Official brand identity, current-project application, page structure, or SVG roster | [`styles_index.json`](./styles/styles_index.json) | |
| 12 | | [`layouts/`](./layouts/) | Brand-neutral structure: canvas, Master/Layout graph, page types, slots, SVG roster | Brand identity or a recurring communication application | [`layouts_index.json`](./layouts/layouts_index.json) | |
| 13 | | [`decks/`](./decks/) | A recurring presentation family: application contract + integrated identity + structure | — | [`decks_index.json`](./decks/decks_index.json) | |
| 14 | |
| 15 | A brand is not “a layout minus its pages”, and a Style is not a roster-free |
| 16 | Deck: each owns a different segment. Use a brand for identity with free page |
| 17 | composition, a Style for reusable direction/method without identity truth or |
| 18 | page prototypes, a layout for brand-neutral structure whose identity and |
| 19 | communication purpose remain downstream decisions, and a deck for a recurring |
| 20 | presentation family with an explicit application contract. |
| 21 | |
| 22 | PowerPoint package objects are compilation targets, not additional template |
| 23 | kinds. Theme values and identity assets are projected from resolved identity |
| 24 | rules supplied by Brand, Deck, or the current project; Layout rules project |
| 25 | into Master/Layout/Placeholder topology, semantic text roles, and |
| 26 | spatial behavior; Deck combines both with descriptive recurring-application |
| 27 | context and actual prototype examples. Style rules guide communication method, |
| 28 | visual language, composition, and information expression; they do not create a |
| 29 | PowerPoint package object or override resolved Brand/Deck identity. Downstream AI planning decides which |
| 30 | prototypes and content to use, then records the required exporter values. |
| 31 | A compiled Slide Master may therefore contain both |
| 32 | structural geometry and brand visuals even though their source rules remain |
| 33 | separately owned. |
| 34 | |
| 35 | New workspaces always enter [`Create Template`](../workflows/create-template.md), |
| 36 | which keeps the fixed route name and dispatches exactly one child workflow: |
| 37 | [`Create Brand`](../workflows/create-template/create-brand.md), |
| 38 | [`Create Style`](../workflows/create-template/create-style.md), |
| 39 | [`Create Layout`](../workflows/create-template/create-layout.md), or |
| 40 | [`Create Deck`](../workflows/create-template/create-deck.md). |
| 41 | |
| 42 | The four indexes are the complete library-discovery source for Default |
| 43 | [`generate-pptx`](../workflows/generate-pptx.md) Stage-1 template selection. |
| 44 | Step 3 prepares candidate input without interaction or reading template |
| 45 | content. The Stage-1 page confirms the communication contract together with an |
| 46 | explicit free-design/template choice; only template mode expands these indexes. |
| 47 | Exact roots supplied for the run or handed off by Create Template appear as |
| 48 | specified candidates. Ordinary requests default to free design; explicit |
| 49 | template intent or any supplied root defaults to template mode. Exactly one root |
| 50 | may be preselected, while multiple roots remain unselected candidates. The user |
| 51 | can always switch modes. The page accepts one registered choice per kind plus |
| 52 | one supplied-root choice, but the complete selection contains at most one |
| 53 | contribution per kind. All four kinds may combine; Layout owns structure when |
| 54 | both Layout and Deck are present. A supplied multi-kind root is atomic. A registered exact root is `library`; any other exact root is |
| 55 | `explicit`. After that combined confirmation, |
| 56 | [`apply-template-workspace`](../workflows/stages/apply-template-workspace.md) |
| 57 | validates and maps every distinct selected root once, preserving each |
| 58 | contribution as `design_spec.<kind>.<id>.md` before Stage 2 starts. Template-aware reading begins in final Stage 2 from |
| 59 | that project-local copy. Quick skips the page, applies supplied exact roots, and |
| 60 | otherwise uses free design. |
| 61 | |
| 62 | ## Orthogonal contracts |
| 63 | |
| 64 | | Axis | Values | Meaning | |
| 65 | |---|---|---| |
| 66 | | Template kind | `brand` / `style` / `layout` / `deck` | Which reusable contract the package owns: identity, direction/method, brand-neutral structure, or a complete recurring application | |
| 67 | | Selection source | `library` / `explicit` | Step-3 discovery provenance only: exact index-derived root or exact unregistered root; it does not change template semantics | |
| 68 | | Internal creation strategy | `standard` / `fidelity` / `mirror` | AI-derived Create Layout/Create Deck implementation: newly author a compact or broad roster, or materialize validated source-package facts into a new workspace; persisted for tools, never presented as a required user choice | |
| 69 | | Internal application plan | `template_reuse_scope` plus optional `template_adherence` | Strategist derives literal, structural, or style-only use and any strict/adaptive exporter behavior after inspecting the installed template and current content | |
| 70 | | PPTX structure | `flat` / `structured` | Derived application plans that use template structure compile declared Masters and Layouts; Style-only, style-scope, brand-only, and free design remain Slide-local. A Style installed alongside Layout/Deck does not change the non-Style structure plan. | |
| 71 | |
| 72 | These axes must not be used as synonyms or exposed as a user mode matrix. In |
| 73 | particular, a mirror-created deck is still an ordinary reusable `deck` package |
| 74 | after creation; it does not force future presentations to keep the source page |
| 75 | count or order. |
| 76 | |
| 77 | ## Workspace contract |
| 78 | |
| 79 | Every package uses the same portable root under either this library or an |
| 80 | initialized project: |
| 81 | |
| 82 | ```text |
| 83 | <template_workspace>/ |
| 84 | ├── templates/ # the Design Spec (naming below); optional Layout/Deck SVGs and native_payloads.json.gz store |
| 85 | ├── images/ # optional bitmaps |
| 86 | ├── icons/ |
| 87 | │ └── imported/ # optional imported vectors, one canonical copy |
| 88 | └── exports/ # optional review evidence; never a template input |
| 89 | ``` |
| 90 | |
| 91 | **Hard rule — the container disambiguates, the filename carries the rest**: one |
| 92 | schema serves both layers. A library root keeps `templates/design_spec.md`, since |
| 93 | `<kind_dir>/<template_id>/` already names its kind and id. A project root shares |
| 94 | one flat `templates/`, so it keeps one `design_spec.<kind>.<id>.md` per kind; |
| 95 | filename kind/id MUST equal frontmatter `kind`/`<kind>_id`. The shapes never |
| 96 | mix. One `templates/` |
| 97 | holds one active SVG roster: Layout when present, otherwise Deck. Both specs may |
| 98 | coexist because Layout overrides only Deck structure. Either shape is a |
| 99 | workspace root, and selecting it takes every kind it exposes. |
| 100 | |
| 101 | Empty optional directories are omitted. Template SVGs reference bitmaps through |
| 102 | `../images/<name>` and imported vectors through `data-icon="imported/<name>"`. |
| 103 | Style contributes only its own Design Spec and no asset or review payload; |
| 104 | sibling scaffolding and other kinds' files are not Style input. |
| 105 | Every kind ignores `exports/`. The conditional |
| 106 | [`apply-template-workspace`](../workflows/stages/apply-template-workspace.md) |
| 107 | stage owns the rest: when installation runs, which roots each kind consumes, |
| 108 | legacy-flat readability, and the boundary that every later consumer reads the |
| 109 | installed project-local files rather than the original root. |
| 110 | |
| 111 | ## Design specification references |
| 112 | |
| 113 | [`design_spec_reference.md`](./design_spec_reference.md) and |
| 114 | [`spec_lock_reference.md`](./spec_lock_reference.md) own normal whole-document |
| 115 | authoring; their schemas own machine validation. Files under `scaffolds/` are |
| 116 | optional overwrite-safe CLI conveniences, not Generate-route starting artifacts. |
| 117 | Reusable template `design_spec.md` files are |
| 118 | deliberately smaller: they contain portable metadata and only the identity, |
| 119 | direction/method, structure, or application rules owned by that package. General SVG rules live |
| 120 | in [`shared-standards-core.md`](../references/shared-standards-core.md), with |
| 121 | effects and PowerPoint interfaces loaded only when triggered. |
| 122 | |
| 123 | ## Visualization Templates |
| 124 | |
| 125 | Page-local Shape-first references are catalog families, not reusable template |
| 126 | kinds: |
| 127 | |
| 128 | | Family | Owns | Planning map | Machine index | |
| 129 | |---|---|---|---| |
| 130 | | Chart | Value-driven geometry (33) | [`chart-vocabulary.md`](./charts/chart-vocabulary.md) | [`charts_index.json`](./charts/charts_index.json) | |
| 131 | | Table | Row × column fact grid (6) | [`table-vocabulary.md`](./tables/table-vocabulary.md) | [`tables_index.json`](./tables/tables_index.json) | |
| 132 | |
| 133 | [`VISUALIZATION_TEMPLATE_AUTHORING.md`](./VISUALIZATION_TEMPLATE_AUTHORING.md) |
| 134 | is the shared authoring contract. Each machine index owns family membership; |
| 135 | the Chart and Table vocabularies are their complete objective planning |
| 136 | projections. |
| 137 | |
| 138 | Qualitative Structure is a Slide-local Executor method rather than a catalog: |
| 139 | Default and Quick both derive its relationship model and compose shapes for the |
| 140 | current page. Only Layout and Deck workspaces own reusable Master/Layout, page |
| 141 | types, slots, and placeholders. When both are present, Layout supplies the |
| 142 | active SVG roster and overrides only Deck's structure segment. |
| 143 | |
| 144 | ## Icon Library |
| 145 | |
| 146 | The `icons/` directory contains 12,027 vector icons across five libraries: |
| 147 | |
| 148 | | Library | Style | Count | |
| 149 | |---------|-------|-------| |
| 150 | | `chunk-filled` | fill / compact, chunky 16px silhouettes | 641 | |
| 151 | | `tabler-filled` | fill / bezier-curve forms | 1,055 | |
| 152 | | `tabler-outline` | stroke / line | 5,138 | |
| 153 | | `phosphor-duotone` | duotone / single color + 0.2 opacity backplate | 1,518 | |
| 154 | | `simple-icons` | brand logos (company / product marks) | 3,675 | |
| 155 | |
| 156 | - **Usage & style rules**: [icons/README.md](./icons/README.md) |
| 157 | - **Versions, licenses & attribution**: [icons/THIRD_PARTY_NOTICES.md](./icons/THIRD_PARTY_NOTICES.md) |
| 158 | - **Search icons**: `rg --files skills/ppt-master/templates/icons/<library>/ | rg <keyword>` |
| 159 | |
| 160 | ## Sound Library |
| 161 | |
| 162 | [`sounds/`](./sounds/) is a post-motion selection resource, not a template or |
| 163 | Strategist resource. Its complete |
| 164 | [cue vocabulary](./sounds/sound-vocabulary.md) is read only after a concrete |
| 165 | auditory job exists; sync selected cues only. See [usage](./sounds/README.md). |
| 166 |