mcpField
W
wf-planning-fusion-optimizer

wf-planning-fusion-optimizer

github.com/adobeDevelopment31845 installsUpdated 1d ago
Repository

About wf-planning-fusion-optimizer

A read-only skill that reviews exported Workfront Fusion scenario blueprints using the Workfront Planning connector. It prioritizes structural causes of runtime, operation use, and API-call volume without live workspace access; an available Workfront Planning MCP can optionally add instance-specific schema checks.

Key features

  1. 01Read-only blueprint analysis
  2. 02Planning-specific connector detection
  3. 03Prioritized performance findings
  4. 04Optional call-mix context
  5. 05Optional MCP schema enrichment

Use cases

  1. 01Reviewing slow Planning scenarios
  2. 02Investigating operation or quota use
  3. 03Assessing API-call volume and 429 risks
  4. 04Checking replication or sync blueprints

MCP support

The base analyzer works on exported blueprints without an MCP connection. If a Workfront Planning MCP is available, it can resolve IDs and check schema feasibility for recommendations; this enrichment is read-only.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/adobe/skills --skill wf-planning-fusion-optimizer

After installing, type/wf-planning-fusion-optimizerin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

README.md
evals/
evals.json
references/
findings.md
mcp-enrichment.md
scripts/
analyze_blueprint.py

Details

From the project README

Workfront Planning + Fusion scenario optimizer

What this does

Takes one or more exported Fusion scenario blueprints (.json) that use the Workfront Planning (Maestro) connector and produces a prioritized, read-only review of what is hurting the scenario's performance: run time, operations consumed, and API call volume (which is what drives rate-limit 429s). It reports; it never modifies the blueprint, and it does not need live workspace access.

The goal is broader than rate limits. Every module execution in Fusion is an operation, operations cost run time and quota, and loop nesting multiplies them. So the same structural fixes usually improve speed, cost, and rate-limit headroom at once. Rate-limit 429s are one symptom of the same underlying inefficiency.

Scope: Workfront Planning only

This reviewer understands the Workfront Planning connector (workfront-maestro modules). It is not a general Fusion optimizer. If a blueprint has no Planning modules (for example a Salesforce-to-Slack scenario), the analyzer detects that and returns a clear "not applicable" result listing the connectors it did find, rather than pretending to review it. Do not force it onto non-Planning scenarios; tell the user it is Planning-specific and, if they want, offer general Fusion advice separately without this skill.

When to use it

Use it whenever a Workfront Planning Fusion scenario is the subject and the concern is speed, run time, timeouts, operations/quota, cost, reliability, or API limits, even if the person does not say "optimize" or "429". Replication, sync, and migration scenarios benefit most because they walk hierarchies and fan out calls, but it applies to any Planning scenario.

How to run it

  1. Get the exported blueprint file(s) (Fusion scenario blueprint export, .json). Multiple can be reviewed together.

  2. Run:

    python scripts/analyze_blueprint.py <blueprint.json> [<blueprint2.json> ...]
    

    With an optional per-request call export (CSV with Resource, Method, Status Code, and optionally Duration columns) for measured context:

    python scripts/analyze_blueprint.py <blueprint.json> --callmix <calls.csv>
    

    Add --json for a machine-readable result.

  3. Present the Markdown report as the deliverable, findings in the order returned (highest impact first). Do not invent numbers the script did not produce.

How to explain the findings

Anchor everything in one model: call volume and operations are module count times how often each module runs, and iteration depth is the multiplier. A GET is cheap at the top of a scenario and expensive several loops deep. Frame each finding in terms of what it improves: calls, operations, run time, reliability, or throughput. The report labels each finding with its "Improves:" dimension for this reason.

State one thing early: there is no bulk-read endpoint. Search and single GET are the only ways to read; bulk exists for writes only. So raising a limit or batching writes does not fix a read-heavy scenario, only reading fewer and wider does. Lead with the read findings (F1, F2, F3) for that reason.

Finding codes, their rationale, and recommended fixes are in references/findings.md. Read it when you need the full explanation for a code; each finding already carries a one-line recommendation in the report.

Optional: enrich with a connected Workfront Planning MCP

The static analyzer is the base and needs no connection. But if a Workfront Planning MCP is connected in the session (most customers running Planning have one), use it to make the recommendations instance-specific instead of generic. It turns opaque ids in the blueprint (Rt69e105..., F6a2010...) into real record-type and field names, and, more importantly, confirms on the live schema that each read-collapse finding is actually feasible: that the child record type has a filterable reference to its parent, and that the fields a per-record GET fetches are already carried as lookups the search returns. That is the check that otherwise needs a pasted sample.

Run python scripts/analyze_blueprint.py <blueprint.json> --ids to list the record-type and field ids the blueprint references, then resolve them through the Planning MCP. The full workflow, and one important caveat (the MCP verifies the schema and feasibility, not the Fusion connector's output nesting), are in references/mcp-enrichment.md. Read it when a Planning MCP is available. This step is strictly read-only, and if no MCP is connected, skip it: the static report stands on its own.

What to be careful about

  • This is a heuristic structural review of the export, not a live measurement. Say so.
  • Reference and record-type ids differ per workspace instance; concrete fixes must be resolved against the customer's live schema.
  • Recommend measuring a representative run before and after, and validating in a sandbox before promoting.
  • Do not promise a percentage improvement. Point to where the cost is and let a real before/after measurement produce the number.
  • Sleep-based throttling (P1) must be removed in sequence, after the read path is cut, or bursts can get worse. Explain the ordering rather than just saying "remove it".
  • With --callmix, shares are usually sampled: treat them as proportions.

Comments

Markdown supported