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
The static analyzer works from the blueprint alone and never needs a connection. But if the user has a Workfront Planning MCP connected (most customers running Planning do), you can turn the generic recommendations into instance-specific ones by reading their live workspace schema. This step is read-only: list and read record types, fields, and connections, and optionally run a search. Never create, update, or delete anything.
Do this only when a Planning MCP is actually available in the session. If it is not, skip this entirely and present the static report, which is complete on its own.
The blueprint is full of opaque ids (for example Rt69e105... record types and
F6a2010... fields). On their own they mean nothing to the reader. With the live schema
you can:
Get the ids the blueprint references:
python scripts/analyze_blueprint.py <blueprint.json> --idsThis returns the workspace, record-type, and field ids found in the blueprint.
For each record type in the finding paths (the ones behind F1, F2, F3), use the Planning MCP to read its definition and its fields. You are looking for:
hasAnyOf);Rewrite the affected findings in the report to name the real fields and state the
concrete fix, for example: "Search <Child> filtered by <Connected Parent field name> hasAnyOf the parent ids, project <lookup field names>; these already carry
what <get module> re-fetches, so that GET can be removed."
Pull the record-type limits and the workspace tier if available, and use them to size the bulk-write and search-paging advice.
The MCP tells you the schema: record-type and field ids, names, reference topology,
lookup coverage, limits, tier. It does not tell you how the Fusion connector nests
fields in a module's output bundle, because that is a Fusion connector behavior, not an
API fact. That distinction only matters if someone is auto-rewriting the blueprint (they
would need to see a real module output to map {{module.output.field}} correctly). For
this review-and-report skill it does not matter: schema access is enough to confirm the
recommendations are correct and to name everything. Do not claim the MCP has verified
the rewired field paths; it has verified the schema and feasibility, which is the right
scope here.
--ids),
not the entire workspace, to keep it fast and relevant.