skills/_disabled/layout-library-sync/SKILL.md
Import a Google Slides presentation as a layout library, create a master from it, and sync element content from a reference master.
npx skillsauth add motleyai/agent-skills layout-library-syncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill guides you through importing a Google Slides presentation as a layout library, creating a master from it, and syncing content from an existing reference master.
The workflow consists of these steps:
Use import_layout_library to import a Google Slides presentation.
Tool: import_layout_library
Parameters:
presentation_url (required): Google Slides URL or presentation IDname (required): Name for the layout libraryExample:
import_layout_library(
presentation_url="https://docs.google.com/presentation/d/1G5UFoE9U_DMtuMqeG_WQ1oWF-I4NR5AK3koAZw1ye58/edit",
name="Q1 Report Template"
)
Returns:
layout_library_id: Use this to create a masterdeck_id: The underlying deck IDslide_count: Number of slides importedNotes:
Use create_master to create an editable master from the layout library.
Tool: create_master
Parameters:
layout_library_id (required): From step 1name (optional): Custom name for the masterExample:
create_master(
layout_library_id=<layout_library_id from step 1>,
name="Q1 Report Master"
)
Returns:
master_id: Use this for all subsequent operationsdeck_id: The master's deck IDUse match_slides to find corresponding slides between your new master and a reference master.
Tool: match_slides
Parameters:
source_doc_id (required): The new master's deck ID from step 2target_doc_id (required): The reference master's deck ID with existing contentslide_name (optional): Match only a specific slideinclude_thumbnails (optional): Use thumbnail comparison (slower)Example:
match_slides(
source_doc_id=<new_master_deck_id>,
target_doc_id=<reference_deck_id>
)
Returns:
matches: List of matched slide pairs with:
source_slide_name: Slide in new mastertarget_slide_name: Corresponding slide in referencesimilarity_score: 0.0-1.0 confidence scorematch_reason: "exact_name_match" or "element_overlap"element_matches: Matched elements between slidesunmatched_source_slides: Slides in new master with no matchunmatched_target_slides: Slides in reference with no matchMatching Algorithm:
For each match, perform these operations:
update_slide(
doc_id=<new_master_deck_id>,
slide_name="Intro",
hidden=false
)
For each matched element pair:
copy_block(
source={doc_id: <reference_deck_id>, slide_name: "Intro", block_name: "title"},
target={doc_id: <new_master_deck_id>, slide_name: "Intro", block_name: "title"}
)
Notes:
parent_block_name to attach the copied query to a parent blockImport the presentation:
import_layout_library(presentation_url="https://docs.google.com/...", name="New Template")
→ Record layout_library_id
Create master:
create_master(layout_library_id=<library_id>, name="New Template Master")
→ Record master_id and deck_id
Match slides with reference:
match_slides(source_doc_id=<new_deck_id>, target_doc_id=<reference_deck_id>)
→ Get list of matches
For each match: unhide the slide and copy each matched element:
update_slide(doc_id=<new_deck_id>, slide_name=<source_slide_name>, hidden=false)
copy_block(
source={doc_id: <reference_deck_id>, slide_name: <target_slide_name>, block_name: <target_element>},
target={doc_id: <new_deck_id>, slide_name: <source_slide_name>, block_name: <source_element>}
)
Repeat copy_block for each element match in the slide.
Resolve to populate content:
resolve_master(doc_id=<new_deck_id>)
list_layout_libraries: List all available layout librarieslist_masters: List all mastersinspect_layout_library: See structure of a layout libraryinspect_document: See structure of a master or get detailed slide contentresolve_master: Trigger resolution of outdated blocks| Error | Cause | Solution |
|-------|-------|----------|
| "Layout library not found" | Invalid ID or no access | Verify library ID exists |
| "Slide not found" | Slide name doesn't exist | Use inspect_document(doc_id=...) to list slides |
| "Block types incompatible" | Deprecated — type conversion is now automatic | Target block is converted to match source type |
| "Master not found" | Invalid master ID | Use list_masters to find valid IDs |
match_slides results before copyingresolve_master to update content after all copiesdevelopment
Create branded HTML presentations using structured slide specs. Outputs JSON DeckSpec instead of raw HTML — the server handles all rendering, styling, and viewport fitting.
data-ai
Create or modify text blocks using update_text_block. Covers template syntax with variable references, LLM generation, and constrained outputs.
data-ai
Create or modify table blocks using update_table_block. Covers template syntax, target_shape constraints, and table generation patterns.
data-ai
Create or modify numerical query blocks within text or table blocks using update_query_block. Queries provide data values referenced as {query_name} in parent templates.