FileMaker Layout XML Skill for Claude

A Claude skill that gives AI models a deterministic, empirically verified foundation for generating and analysing FileMaker Layout mode XML (fmxmlsnippet type="LayoutObjectList").
Created by Andrew Kear of Clockwork Creative Technology and shared openly with the FileMaker/Claris community under CC BY 4.0. Attribution required on any reuse, adaptation or redistribution, including any derived or excerpted work.
The problem this solves
FileMaker's Layout mode accepts layout objects via clipboard paste in a specific XML format. Without explicit knowledge of that format, AI models guess — and FileMaker pastes malformed objects silently.
Effective AI-to-FileMaker workflows require a clear boundary between what AI should determine (the layout logic and content) and what must be deterministic (the XML structure). This skill provides that boundary.
The XML shape is knowable. This spec makes it known.
Keeping AI focused on what it is good at
AI models are generative by nature — they predict, they infer, they improvise. That is exactly what you want when reasoning about what fields belong on a layout and how they should be arranged. It is the opposite of what you want when emitting XML element order or flag bit patterns.
This skill keeps AI focused on what it is good at. The structure is handled deterministically. Claude handles the logic.
How the specification was built
This is not a prompt or a set of guidelines assembled from documentation. FileMaker publishes no formal specification for the fmxmlsnippet layout clipboard format.
The specification was built entirely through empirical reverse-engineering: generate XML → paste into Layout mode → save → copy back out → diff against native output. Every object type, every flag bit, every element ordering rule confirmed through round-trip testing.
Silent failure modes — where FileMaker accepts malformed XML and drops elements without any error — were systematically identified and documented.
The result is a formal specification for a format that Claris has never documented.
The 2.7 minor corrections came from the opposite direction to the rest of this repo: setting each property against a live file and reading the resulting Save as XML, rather than round-tripping the clipboard. The two methods agree everywhere else they overlap, which is the strongest check either has had.
What's in the box
SKILL.md Claude skill definition
README.md This file
references/
filemaker_layout_xml_rules.md Full specification (v2.5, ~1800 lines)
Specification highlights
Covers all 18 layout object types, the full theming/CSS serialization model, object anchoring, and a multi-object Text paste corruption bug most AI-to-FileMaker tooling wouldn't catch — root cause identified and fixed. Full detail, with round-trip verification markers throughout, is in references/filemaker_layout_xml_rules.md.
Requirements
- Claude (Pro, Team, or Enterprise)
- Skills support enabled in your Claude organisation
Tested with Claude. Model-agnostic by design — the deterministic approach means any capable model with the specification in context should produce reliable output. Claude is the only model Clockwork has tested against; others have reported success.
Installation
- Download the zip from the Releases page
- Extract — you should have
SKILL.md and references/filemaker_layout_xml_rules.md
- Upload to your Claude organisation's skills library, preserving the folder structure
Usage
Once the skill is installed, Claude will automatically apply it when you ask for FileMaker layout XML. No special prompt needed.
Generate layout objects:
"Generate XML for a field showing Contacts::FirstName with a label to its left"
Generate a portal:
"Create a portal showing related InvoiceLines with three columns: description, quantity, and unit price"
Review existing XML:
Paste your fmxmlsnippet and ask Claude to check it for paste-handler errors
With a DDR or Save as XML export:
Attach a DDR or a Save as XML export and Claude will use real field, table occurrence, and relationship names from your solution. Either works — both carry the schema.
Pasting into FileMaker
Layout mode requires the fmxmlsnippet type="LayoutObjectList" format on the clipboard in FileMaker's internal clipboard format — not plain text. This skill has been tested with the MBS Plugin installed.
Multi-object Text/Button paste corruption and the fix
Pasting two or more Text objects without an ExtendedAttributes block on each TextObj causes FileMaker to silently concatenate their text together at paste time. Always include a standard ExtendedAttributes block, matching the object's own CharacterStyle — confirmed clean at 2 and 3 objects in one paste with it present.
ButtonBar segments, GroupButton children, and PlaceholderText fields are all covered by the same fix — placeholder fields verified directly (multiple per paste, clean, with the block on every TextObj; the field itself needs nothing extra). The ButtonBar followed by GroupButton residue sequence has now been retested and is clean with the fix in place. Full detail in references/filemaker_layout_xml_rules.md §31.
Known limitation: whole-layout retheming
Stripping ad hoc LocalCSS overrides across a whole layout and rebinding objects to their proper named theme style is under active development and not yet recommended for production layouts.
The object-level mechanic is verified (§25.6): the layout round-trips, unmatched objects pass through verbatim, matched objects rebind. What is not settled is which objects should be treated as a match, and whether object types beyond fields and text behave the same way. Until that is proven across more layouts, treat retheme output as a draft to review rather than a paste-and-trust result. Note also the untested key-rebinding caution in §25.6 for layouts with attached labels or a defined tab order.
It will ship with its own instruction guide when it lands. This is the hardest problem across all the repos and is being worked deliberately rather than shipped early.
The rest of the collection
Menu
Reference skills
FileMaker Second Opinion
FileMaker AI Vocabulary
Research / Specialist
FileMaker XML bit-flags (SaXML)
FileMaker AI Grammar
Generation, paste-ready FileMaker XML
Script XML Skill (XMSS, XMSC, XMFN)
Layout XML Skill (XML2)
Field, Table & Value List Definitions (XMFD, XMTB, XMVL)
Analyse a FileMaker solution in your browser
Clockwork Inspector (SaXML)
XML Scrubber (SaXML + others)
Licence
CC BY 4.0. Free to use, share and adapt with attribution. Attribution is required on any reuse, adaptation or redistribution, including any derived or excerpted work: vendoring the spec into another project, or lifting a section into another skill, both count.
Contributing
Found something that doesn't round-trip? A production export that contradicts the spec? Open an issue or PR.
First external contributions landed in 2.6: Hiromine Fujita measured the 1.0pt length drop and the theme-paste id reassignment (issues #1 and #2), with a protocol matching the spec's own round-trip method.
Version history
| Version | Notes |
|---|
| 2.8 | Further refinement |
| 2.7 | FieldObj bit 20 corrected (override data formatting with value list, inverted, not an edit box marker). Anchor conversion rule and bit 10 naming added. |
| 2.6 | Excellent external contributions, measured to the repo's own standard by Hiromine Fujita (issues #1 and #2). Integer CSS lengths written 1.0pt are dropped at paste, so write 1pt (§26.2, §23). Pasting a theme mints a fresh custom-theme UUID, so capture ThemeName after the paste, not from the theme XML you pasted (§0, §28.1). And the mismatch mechanism pinned down along the way: on a wrong ThemeName the object is rebuilt from FullCSS with supplied LocalCSS discarded (§25.3). All three behaviours round-trip confirmed first party before release. |
| 2.5 | Object anchoring verified. WebViewer handling enhanced. Earlier flag readings corrected. Token reduction pass across the spec. |
| 2.4 | Full closure pass against FileMaker Pro 26.0.1.51. Observed items now fully verified; production testing continues. |
| 2.3 | Eight mechanisms corrected by round trip verification against FileMaker Pro 26.0.1.51. The spec is now close to fully verified. |
| 2.2 | Continued verification and hardening |
| 2.1 | We found a real FileMaker bug — and fixed it (see "Multi-object Text/Button paste corruption and the fix" above). Plus: Portal behaviour completely re-verified end to end (several long-standing assumptions turned out wrong once actually tested), and a fresh batch of field/formatting rules confirmed. The most rigorously tested release yet. |
| 2.0 | Theming and behavioural model. Added the LocalCSS/CustomStyles/FullCSS serialisation model and four cases, the complete Face character-attribute bitmask, the full script-trigger event table with object-type scoping, button icon embedded-SVG streams, button-bar LabelCalc, the FileMaker 2026 CanEntryCalc access-by-calculation element (generated elements confirmed to enforce), and theme independence proven across two themes. Element-order section refined to match round-trip output (see §21). |
| 1.1 | Extended corpus: 45+ layouts, 10 applications. Added ScriptTriggers, ToolTip, LabelCalc sections. CSS selectors table. portalFlags extended. TabPanelObj corrected (not a round-trip artifact). |
| 1.0 | First public release. All 18 object types documented. Full round-trip verification across 35+ production layouts. |