JSX inventory
Each script with what weighs on the migration: DOM, ScriptListener descriptors, ScriptUI, BridgeTalk, absolute paths, plain-text secrets.
Deliverable: inventario.csv with a class per scriptOcto for scripts and UXP in Photoshop
Photoshop runs ExtendScript and, since version 23.5, UXP scripts (.psjs); UXP plugins have a panel, a manifest and permissions. Octo inventories what the team has, rewrites in UXP what is used, with executeAsModal, a file picker and a log, and compares the outputs side by side with the old JSX. The image, the permissions and the switch stay with people.
Six possible deliverables, drawn from the research. None of them switches a production script without a comparison, all of them check the output by content, and all of them go to review by whoever answers for the workflow.
Each script with what weighs on the migration: DOM, ScriptListener descriptors, ScriptUI, BridgeTalk, absolute paths, plain-text secrets.
Deliverable: inventario.csv with a class per scriptFolder picker, executeAsModal with progress and cancellation, a copy with a standard name, the original closed without saving.
A manifest with minimal permissions: files through the picker, network closed, no external process without justification.
Deliverable: reviewed manifest.json and plugin loaded in UDT"Copy As JavaScript" from a reviewed action becomes clean batchPlay descriptors; what the DOM covers goes to the DOM.
The JSX and the .psjs on the same folder of difficult cases; names, dimensions and profile compared before the switch.
Deliverable: comparison approved by the person in chargeSyntax, manifest, permissions, absolute paths and secrets checked without Photoshop, before any installation.
Deliverable: checagem.txt per plugin versionThe same Octo cycle, applied to scripts and plugins. Each arm has a narrow role; the ones who approve the image, the permissions and the switch are people.
Scripts, CEP panels and plugins, which ones run, on which Photoshop version and on how many workstations.
Inventory, a JSX to UXP equivalence table and a versioned folder of test cases.
Plain-text secrets, absolute paths, manifest permissions and third-party code.
.psjs script, plugin, hybrid plugin or cloud, depending on the task and what UXP can reach.
With executeAsModal, a file picker, a log and the DOM before batchPlay.
JSX and .psjs side by side on the difficult cases. "It ran without errors" is not a comparison.
A checked plugin and installation instructions. Installation on the workstations is approved by the client.
What was migrated, what stayed and why, and the Adobe roadmap dates read at each review.
Octo does not switch a production script without a comparison and does not request permissions the plugin doesn't use. It does not approve images, does not install anything on the workstations and does not keep anyone's license.
The criteria Octo uses to choose, with the documented limit of each path.
| Task | Path | Notes |
|---|---|---|
| One-off task, no panel | UXP script (.psjs) | Photoshop 23.5 or newer; no persistent data |
| Buttons and a panel for the team | UXP plugin | Manifest with permissions; loaded through UDT |
| A step the DOM doesn't cover | batchPlay | Adobe recommends trying the DOM first |
| Change a document | executeAsModal | Required; progress, cancellation and history |
| Native code or an external process | Hybrid plugin | Last resort; a heavier security review |
| Legacy script that still runs | ExtendScript, until migrated | No published end date; CEP panels have a date |
| Script with no workstation | Photoshop API | UXP scripts in limited availability, tight sandbox |
Three steps. Each one only makes sense after the previous one has shown results on your team.
A proposal, not a promise
Octo reads the scripts folder and the installed panels, without changing anything on the workstations.
The most-used straightforward scripts rewritten in .psjs and compared side by side with the JSX.
Reviewed actions and scripts gathered in a panel with minimal permissions.
Every point below has a source published by the vendor, by the project or by the responsible agency. The sources are in the next section.
3
points with a published source, each with its reference shown alongside.
Octo prepares everything, but it does not sign. The document of record stays with whoever is accountable for it.
Surveys, calculates, organizes and produces the documents: processed files, proofs, reports and spreadsheets.
Deliverable: material ready to checkThe client or the art director checks what Octo delivered before approving. If something doesn't add up, it goes back to Octo with the correction.
Step: checked by the person who approvesOcto does not approve the artwork. Artwork carries no legal signature: approval of the artwork and the proof stays with the client or the art director.
Approval: client or art directorAdobe developer pages (scripting, UXP, executeAsModal, batchPlay, Document class, manifest, Migration Center, Photoshop API) and Photoshop help pages (scripting, what's new, requirements), consulted on Oct 31, 2026.
The assessment starts with an inventory of the scripts folder the team already has. You get each script's class, the secrets and paths to remove, the proposed order and the questions only your team can answer, and you decide with that in hand.