Adobe Workfront skills for AI agents. Includes Workfront Planning (WFP/Maestro) solution architecture: workspace design, record connections, formula fixes, tier limits, the Planning API, and a Fusion scenario optimizer.
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
This reference summarizes the Fréscopa multi-workspace template, a best-practice exemplar for a multi-workspace Planning build. A trimmed sample export is preserved as best-practice-template.json in this folder — it keeps the full structure (all 6 workspaces, 37 record types, and their fields/views/hierarchies) but caps sample data at ~5 records per record type. This .md file is the digest the skill should read first; consult the JSON only when a question requires field-level or record-level detail.
Use this file in two distinct ways:
A 6-workspace template for a fictional consumer-brand company (Fréscopa) covering marketing planning end-to-end.
| # | Workspace | Sections | Native record types | Purpose |
|---|---|---|---|---|
| 1 | Global Classifications & Taxonomies | 6 | 20 | Central reference-data hub, cross-workspace linked |
| 2 | Fréscopa Global Marketing | 2 | 4 | Core operational marketing (Campaigns, Channel Tactics, Experiences, Events) |
| 3 | Fréscopa Social Marketing | 3 | 1 | Channel-specific (Influencers) |
| 4 | Fréscopa Media & PR | 3 | 3 | Channel-specific (Reporters, Media Outlets, Media Engagements) |
| 5 | Fréscopa Global Events | 3 | 5 | Events-specific (Event Types, Workstream Types, Speakers, Event Locations, Event Audience Type) |
| 6 | Fréscopa Executive Company Leadership | 1 | 4 | OKR cascade (Enterprise Goals, Department Objectives, Team Objectives, Key Results) |
Totals: 37 native record types, ~1,311 sample records, 7 hierarchies, 9 external record-type connections (5x Workfront Project, 2x AEM Assets, 2x GenStudio Brand), 13 configured views, 0 business rules.
WS1 is the canonical taxonomy hub. 18 of its 20 record types have linkableWithAllWorkspaces: True. Domain workspaces (WS2 through WS6) consume taxonomies from WS1 rather than duplicating them. This is the right way to avoid "Countries" existing five times in five workspaces.
Not every shared record type should be linkable everywhere. The template demonstrates this:
linkableWithWorkspaceIds: 5 (targeted to 5 specific workspaces), not linkableWithAllWorkspaces.Selective linking is the right default for anything where over-exposure would clutter unrelated workspaces.
Campaigns has 31 fields broken down as:
The 8:8 reference-to-lookup ratio is the playbook "always create lookup fields on connections" rule applied properly. Lookups surface Regions and Languages from Countries, Brands and Product Categories from Products, Quarter Start and Quarter End from Quarters, and so on. This is what a mature work record type looks like.
Campaigns has exactly one bidirectional connection (Channel Tactics, with backField configured). All other references (Countries, Channels, Messaging, Quarters, Target Audiences, Products, Journey Stages) are unidirectional. This matches the playbook: parent-child gets bidirectional, work-to-reference stays unidirectional to keep reference types clean.
7 hierarchies modeled across workspaces:
WS1 (Taxonomies):
WS2 (Marketing):
WS6 (Executive):
WS6 shows a useful pattern: Department Objectives appears in two hierarchies (as child of Enterprise Goals, and as parent of Key Results). This encodes the OKR cascade without forcing it into one tree.
9 external record-type instances spanning all three external systems: Workfront (Project, 5 instances), AEM (Experience Manager Assets, 2 instances), GenStudio (Brand, 2 instances). The template shows that external connections can be scoped per workspace (linkableWithWorkspaceIds: 2 on one of the Project externals) rather than always being global.
1,311 records across 37 types is enough for realistic demos and testing. Heavy types (States/Provinces: 310, Experiences: 258, Media Outlets: 92, Channel Tactics: 65) exercise the platform; light types (Vision and Mission: 3, Pillars: 4, Event Types: 4) keep the noise low. All counts are well below the 25,000-per-record-type ceiling.
These are real gaps in the template. When the skill uses this template as a pattern source, it must not carry these forward. When customers ask "is this template good?" the skill should celebrate the strong patterns above AND surface these gaps so the customer can decide consciously.
The playbook says: reference types should have Start Date, End Date, and Status deleted because reference data has no lifecycle. The template keeps these on:
Skill behavior: when designing reference types, always delete Status, Start Date, End Date unless the user explicitly justifies keeping them. Do not justify them by saying "the Fréscopa template does this." That is the exact mistake to avoid.
Only 5 of 37 record types have custom views configured. Work record types with ZERO custom views (just the default Table):
The playbook target is 2 to 3 configured views per work record type, only default Table for pure reference types.
Skill behavior: when building a work record type, always create 2 to 3 configured views (Table with filters/grouping/sorting, plus Timeline or Calendar where dates exist). Never leave a work record type on bare default Table.
Skill behavior: target 3 to 6 sections per workspace. If fewer makes sense (small, focused workspace), say so deliberately. If sections will be populated mostly by cross-workspace types, document that intent up front.
Workspace names use numeric prefixes ("1.", "2.", "3."), which the playbook explicitly discourages in favor of creative business language. Section names have typos and inconsistent capitalization:
Skill behavior: when generating workspace or section names, use consistent Title Case, no mid-word capitalization, no typos, and avoid numeric prefixes unless the user explicitly asks for ordered naming.
The Campaigns hierarchy uses the full 4-level depth (Campaigns > Channel Tactics > Experiences > [4th type]). Any future extension (Tasks under Experiences, sub-tactics, content blocks under Experiences) will not fit, since 4 record types per hierarchy is the hard cap.
Skill behavior: when designing a hierarchy that approaches 4 levels, flag the ceiling to the user. If the customer has a roadmap that includes more depth, recommend keeping headroom (3 levels max) and using non-hierarchy connections for the next layer instead.
businessRules: list[0]. For a template marketed as best-practice exemplar, the absence of any rules is a teaching gap.
Skill behavior: when building a workspace, consider whether business rules would enforce useful editing or deleting restrictions (e.g., allow editing only while Campaign Status is Draft). Recommend 1 to 2 rules where they earn their keep. Do not skip them just because this template did. Business rules are unavailable on global record types, and Formula, Lookup, and Reference fields cannot be used in conditions.
Channel Tactics references Campaigns with multiple: true. If a customer instantiating this template runs a campaign with more than 500 tactics, they hit the multi-select non-hierarchy connection cap. This is the same architectural ceiling that has surfaced in past customer escalations.
Skill behavior: when this template (or any similar parent-child pattern with a high-volume child) is being instantiated for a high-volume marketing org, surface the 500-connection ceiling up front as a sizing-fit conversation. Do not wait for the customer to discover it after rollout. If the projected volume exceeds the cap, recommend a hierarchy-based connection (which has its own different cap of 10 parents per child) or a redesign that batches tactics by campaign segment.
For "build me a workspace" requests (Category B and C in SKILL.md routing): load this file alongside workspace-build-playbook.md. Use the Strong Patterns section as concrete examples. Use the Deviations section as a checklist of things to NOT do.
For "is this template good for our org" customer conversations: lead with the strong patterns (architecture quality, cross-workspace strategy, lookup richness, hierarchy design, external integration coverage), then surface the deviations as adoption considerations the customer should decide consciously.
For sizing conversations on high-volume marketing customers: always pull deviation #7 forward proactively.
For naming conventions: never cite this template's section names as examples of good naming. Cite the playbook and standard Title Case instead.
For "show me what mature looks like" questions: this template is the answer at the architectural level, with the seven deviations called out as work-in-progress items even on a mature build.
references/best-practice-template.json (trimmed sample export, minified, ~1.6 MB, identifiers scrubbed; full structure with ~5 records per record type)