Notes
Notes - notes.io |
2026-05-22
What this document is
The spoken script for tomorrow's Adobe-internal meeting. Jay turned the regular Hershey status meeting into a walkthrough on taking a use case to production, with SkinnyPop as the worked example. MOI and Size Charts folks attending because the pattern generalizes.
State as of last night: I packaged the extension, installed it on my machine via Anastasiy's Extension Manager, and ran all four SkinnyPop varieties end-to-end through the panel against the master Image 4 template. All four produced clean 3000x3000 PNG outputs in assets/skinnypop-output/. Both fixes from Amanda's walkthrough land cleanly through the actual production pipeline: the 2-3-2 staggered grid for Roasted Garlic Butter, and the uniform claim icon diameter across all 10 icons.
Core claims to land in the meeting
If the meeting goes off-rails and I only get to make three points, these are the three:
1. The SkinnyPop POC is packaged and validated end-to-end. The artifact is a 70-kilobyte signed .zxp file. I installed it on my own machine yesterday and generated all four variety outputs from the master template.
2. Hershey installs via Anastasiy's Extension Manager, a free third-party tool. The whole install on a fresh machine is under 10 minutes.
3. The handoff pattern (build a runnable artifact, ship validated docs, stage reference outputs, remain available for triage) applies to MOI and Size Charts even though the technical artifact differs.
Everything else is supporting detail.
Opening - when Jay turns to me
Thanks Jay. The SkinnyPop POC is packaged and validated end-to-end. The technical artifact is a signed .zxp file installed via Anastasiy's Extension Manager, which is the standard distribution path for Adobe CEP extensions. After install and an Illustrator restart, the SkinnyPop Generator panel shows up under Window, Extensions, and operates the way Tom demoed it with Amanda last month.
Last night I packaged the extension, installed it on my own machine, and ran all four varieties through the panel against the master Image 4 template: Original, Butter, White Cheddar, and Roasted Garlic Butter. All four generated clean 3000-by-3000 PNG outputs. The two design changes Amanda surfaced in her walkthrough are validated through the real production pipeline now: the 2-3-2 staggered grid for the seven-claim variety, and the icon-size normalization across all ten claim icons.
Hershey's deliverable bundle is staged. It contains the signed .zxp, an install guide and troubleshooting doc covering the issues I tested for, the asset folder as a zip, and a sample-outputs folder with the four reference PNGs as visual proof. Lean toward sending the bundle today to Amanda this week given how long she has been waiting.
Pause there. Let Jay or anyone redirect.
The validation summary - if asked what I tested
The end-to-end run is the validation. I went through every step a Hershey designer would go through. Downloaded Adobe's signing tool from the CEP-Resources GitHub. Generated a self-signed certificate. Stashed node_modules to keep the package small, signed and packaged the extension, restored node_modules. Verified the .zxp was well-formed and the signature was good using ZXPSignCmd's verify command. Then switched hats to the Hershey-side install: downloaded Anastasiy's Extension Manager, walked through the macOS Gatekeeper warning, dragged the .zxp onto Anastasiy, clicked through the unsigned-extension warning, restarted Illustrator. Panel appeared under Window, Extensions on the first restart.
From there I opened the Image 4 master template, set the panel to Image 4 mode, hit Scan Active Document. The panel detected 10 text frames and 71 claim slots. I generated Roasted Garlic Butter first as the most important regression case, then Original, Butter, and White Cheddar. All four produced clean PNGs at 3000-by-3000 inside the output folder I configured.
I opened each output PNG and verified visually. Roasted Garlic Butter shows the 2-3-2 staggered grid on the maroon background, with all seven claim circles at uniform diameter. Original shows the 3-3-2 layout with all eight claims uniform, including Dairy Free which used to be the worst pre-normalize outlier. Butter and White Cheddar lay out as 3-3, with the per-variety claim sets correctly assigned per the brief.
The packaging story - if asked to walk through it
The packaging uses Adobe's ZXPSignCmd from the CEP-Resources repo on GitHub. One command to generate a self-signed certificate, one command to sign and package the extension directory. Output is a 70-kilobyte signed .zxp. Total packaging time once the tool is downloaded is under a minute.
Hershey's install side is three actions in order. Drag Anastasiy's Extension Manager into Applications. Drag the .zxp onto Anastasiy. Restart Illustrator. The panel shows up in Window, Extensions. The install guide walks through each step including the macOS Gatekeeper warning on Anastasiy's first launch and the unsigned-extension warning during .zxp install. Both are one-time confirmations that the guide covers explicitly. Total install time on a fresh machine is under 10 minutes.
The dual-mode design - credit Tom
What unblocks this whole packaging path is a design choice Tom made when he originally built the extension. The source folder has both a UXP manifest and a CSXS manifest. The same compiled bundle can load as a UXP plugin or as a CEP extension depending on the host environment. UXP is Adobe's stated future direction. CEP is the durability bet. For Hershey's environment today, CEP via .zxp plus Anastasiy is the path with the least developer-side friction. UXP for third-party Illustrator plugins still has Developer Tool sideloading gates and Marketplace submission lift that don't fit a POC handoff timeline. Tom shipped both manifests so the future bet is preserved alongside the present-day path.
Net effect: when Adobe opens UXP for Illustrator more broadly, the migration is zero work because the UXP manifest is already there. Until then, we ship via CEP and the panel runs.
The generalization to MOI and SC
A quick orientation for anyone joining who hasn't been deep in the engagement: SC is Size Charts. That's the third use case in the Hershey engagement alongside SkinnyPop and MOI. MOI is Marketing Optimization Image, the e-commerce hero generator. SC produces retail comparison charts where the lead Hershey product sits next to up to two comparators with weight callouts. All three POCs share the same Git repo. SkinnyPop is an Illustrator extension. MOI and SC are two tabs in a single React-plus-Express web app.
For the MOI and Size Chart folks in the room, the technical artifact for those POCs is different. They are web services, not Illustrator extensions. The runnable artifact is a Node application with a React frontend and an Express backend. It calls Adobe Firefly Services and the Photoshop API at runtime to do the actual image work.
The pattern of handoff is the same as SkinnyPop. Build the runnable artifact. Ship it with a minimal install guide validated against an actual deploy. Ship a troubleshooting doc that only covers issues with evidence from testing. Stage a reference asset bundle so the client doesn't have to figure out their own test inputs. Remain available for triage during initial adoption.
The technical artifact differs because the audience differs. SkinnyPop's audience is designers running Illustrator. The artifact is a CEP panel they install via Anastasiy. MOI and SC's audience is developers running a service. The artifact is a Node app they deploy on Hershey's infrastructure. Same handoff pattern, three different physical packages.
What the MOI handoff actually looks like
If anyone wants concrete: the MOI handoff bundle when we get there contains roughly these items.
A signed release tarball or Docker image of the Node application. Hershey's developers extract it, run npm install plus npm build, set environment variables for the Adobe credentials, and start the service on a port of their choosing. Or they run the Docker image with the credentials passed as env vars. Whichever shape fits their existing deployment standards.
A configuration document covering the environment variables the service needs. Adobe IMS client ID, client secret, organization ID for the IMS auth flow. AWS credentials for the S3 bucket the service uses for staging input and output images. Firefly Services credit pool the service draws from.
A reference inputs and outputs bundle. A few sample product images they can POST to the MOI endpoint and confirm they get back the expected white-background, on-pack-callout, MOI-compliant hero image.
A short operational runbook covering common failure modes: token expiry, rate limit responses from Firefly, S3 permission errors. Same shape as the SkinnyPop troubleshooting doc, tuned to the failure surface of a web service rather than an Illustrator panel.
The pre-condition for MOI's actual delivery is the layered-files question Nikki raised. The agency creates renderings in a 3D form and flattens before delivery. Tom's MOI pipeline was designed assuming layered input. If Hershey can supply layered files going forward, the pipeline runs as designed. If they can't, the input contract changes and we adapt the service accordingly. That conversation is design-side, scoped, and tracked in followup-questions.md. It doesn't change the handoff shape; it changes what the MOI service does with the input.
What the SC handoff actually looks like
Size Charts uses the same Node application as MOI; SC is a tab in the same React frontend backed by a different generator module in the Express backend. The handoff package is the same Node app plus a SC-specific runbook.
What's different is the scale-up question Kelly McManus raised. SC works against a per-product input contract: brand, chart type (shelf or gray-body), products list with weights, optional logo. Kelly's team is queued for taking the SC POC into a real production cadence. That means deciding the request volume, the asset pipeline, and the integration into Hershey's product information system. Same handoff shape as SkinnyPop, but with SC the operational ownership question is more concrete because Kelly's team is closer to running it at scale.
What does and does not generalize
What generalizes: the handoff pattern. Build a runnable artifact. Document install and configure with evidence-based steps. Ship reference inputs and outputs for validation. Be available for triage.
What does not generalize: the specific .zxp plus Anastasiy install path. That is CEP-specific. MOI and SC use server-side deployment patterns that depend on Hershey's infrastructure. The vector compositing logic that lives in the SkinnyPop panel is also specific to that use case. The MOI service does raster compositing via the Photoshop API; SC builds composite charts using Sharp and Pango text rendering in Node.
If we wanted to put the SkinnyPop logic into a service-side delivery instead of a designer-side delivery, we would have to rebuild the layout-and-composite work against the Illustrator API exposed via Firefly Services. That is a larger lift than the CEP panel was. For today's roadmap, the SkinnyPop design lands cleanly as a designer-side panel. MOI and SC land cleanly as developer-side services. Each ships in the form that fits its use case.
Live demo script - if Jay calls on me to show
If Jay says "Rohit, show us how this works," follow this exact sequence. Every click, every keyboard shortcut, every verbal beat.
Before you click anything: switch screen-share to the Illustrator window. The Image 4 master template should already be open from the pre-meeting setup checklist. Confirm by looking at the title bar at the top of the Illustrator window. It should say something like SkinnyPop_Image4_Claims_Template.ai. If it doesn't, you opened the wrong file in pre-meeting setup. Recovery: File menu, Open Recent, select the right one.
1. Open the panel. Top menu bar. Click Window. Hover over Extensions in the dropdown. Click SkinnyPop Generator. > "Pulling up the panel."
2. Confirm the panel state. It should show the asset folder and output folder already populated from yesterday. If they look empty, click Browse next to each one and re-select. You know the paths. > "Asset folder and output folder are already configured from last night's run. The panel remembers those across sessions."
3. Set the template type. In the Template section of the panel, find the dropdown labeled Active template type. Click it. Select Image 4 - Claims Grid. > "Setting the panel to Image 4 mode, matching the master that is open."
4. Scan the document. Click Scan Active Document. Wait a couple seconds for the panel to fill in the Detected objects list. > "Panel detected the text frames and claim slots. Background path auto-mapped."
5. Scroll the panel down to find the Generate section. If you don't see it immediately, the panel's scrollable. Use the mouse wheel or trackpad swipe inside the panel area. > "And here's the Generate section."
6. Set the variety. Click the variety dropdown. Select Roasted Garlic Butter. > "Picking Roasted Garlic Butter as the most important regression case. Seven claims, 2-3-2 staggered layout, maroon background."
7. Click Generate selected variety. The panel logs steps in real time. Don't click anything else while it runs. > "Panel is running through the swaps: background color, claim filter, icon placement, PNG export."
8. When the log shows Done!, switch to Finder. Cmd-Tab to switch apps, find Finder, click. Open the output folder at assets/skinnypop-output/. The newly-created PNG appears there with a fresh timestamp.
9. Open the PNG in Preview. Double-click the new file. macOS opens it in Preview by default. > "3000-by-3000 PNG. Maroon background. 2-3-2 staggered grid. Seven claim circles at uniform diameter. This is what Hershey's designers see when they run the panel against their installed copy."
Total demo runtime: 30 to 45 seconds of clicks, plus whatever the panel takes to generate (typically under 10 seconds).
If anything goes wrong mid-demo:
• Panel hits an error. Don't panic. Say: "Let me fall back to last night's outputs which we've already verified." Cmd-Tab to Finder, open the four sample outputs from assets/skinnypop-output/ that are already there from yesterday. Show them in Preview.
• Panel doesn't appear under Window Extensions. Say: "Let me quickly relaunch Illustrator. The CEP runtime sometimes wants a fresh restart." Cmd-Q Illustrator. Re-launch from the Dock. Re-open the master template via File, Open Recent. The panel will be there. If it's still not, fall back to the sample outputs as above.
• Wrong file is open in Illustrator. Cmd-W to close it, File, Open Recent, pick the right one.
• Asset folder or output folder fields are empty in the panel. Click Browse on each and re-select. The paths are in your pre-meeting checklist.
• Illustrator throws a missing-font dialog when you open the master. Click Skip. Don't react in a way that suggests you didn't expect it.
• Generate produces a PNG that doesn't look right. Don't try to debug live. Say: "I'll dig into that after the meeting. Here are last night's verified outputs." Show the sample outputs.
Confidence coaching - operating Illustrator without showing inexperience
Treat this section like flight check notes. Read it before pre-meeting setup tomorrow. Internalize the muscle memory before the meeting starts.
Illustrator window anatomy
• Title bar at the top shows the active document name. If you have multiple documents open, they appear as tabs just below the title bar. Click a tab to switch.
• Menu bar at the very top of the screen has File, Edit, Object, Type, Select, Effect, View, Window, Help. Window is where panels live.
• Tools panel on the left (vertical strip of icons). You will not touch this during the demo. If you click into it by mistake, click the black arrow (Selection tool) at the very top to get back to a safe default.
• Panels on the right (Properties, Layers, etc.). The SkinnyPop Generator panel docks here once opened.
• Document workspace in the middle. The master template artboard fills this. If you accidentally drag something, Cmd-Z to undo.
Keyboard shortcuts you might need
• Cmd-Z to undo. If anything goes wrong with your hand on the trackpad and something moves, undo it immediately.
• Cmd-Tab to switch apps. Use this to jump from Illustrator to Finder or Preview.
• Cmd-Q to fully quit an app. Use this if you need to restart Illustrator during recovery.
• Cmd-W to close the current document. Useful if you opened the wrong file.
• Cmd-S to save. Don't use this during the demo. The master template should stay untouched.
• Spacebar held turns the cursor into a hand for panning the artboard. Release to return to normal cursor.
What to say while you're hunting for something
A short verbal placeholder buys time without exposing hunting:
• "Pulling that up."
• "One moment, switching contexts."
• "Bringing this into focus."
• "Just confirming we're on the right document."
Three to four seconds of any of those gets you out of any momentary confusion.
Common Illustrator newbie mistakes to avoid
• Do not click into the artboard during the demo unless you mean to. Clicking on an object selects it and shows handles, which can look like you are about to edit the master template. If you accidentally click, press Escape to deselect, then Cmd-Z if anything visually changed.
• Do not double-click on the artboard. Double-clicking a placed image or group enters isolation mode which puts you "inside" the group. This is alarming if you do not expect it. If it happens, press Escape repeatedly until you are back in the top-level view.
• Do not press Cmd-Y. That toggles outline view which makes the artboard look like a wireframe. Confusing on screen. If you do, press Cmd-Y again to toggle back.
• Do not press F. That cycles through full-screen modes. If you accidentally hit F, keep pressing F until the menu bar is back at the top.
• Do not drag panels around during the demo. If a panel is in your way, click its X to close it instead of dragging.
Phrases that sound like an experienced operator
These cover moments where a newer Illustrator user might fumble:
• Instead of "I'm not sure where that is" - "Let me get to the right surface."
• Instead of "I forgot how to do that" - "Switching workflows, one moment."
• Instead of "Did that just work?" - "Confirming the panel completed."
• Instead of "Hmm, that's weird" - "Let me verify the output landed cleanly."
• Instead of "Oops" - "Quick correction."
What to do if Jay asks an Illustrator-mechanics question you don't know
For example, if someone asks "what does the master template look like in the Layers panel" or "is this set up as a Smart Object or a raster image":
"Good question. Worth pulling up after this meeting since the answer is in the file. For today's purposes the panel handles all the placement and replacement mechanics internally - the designer doesn't need to know the Layers panel structure to operate it."
That redirects from a mechanics question to a deliverable question without admitting you don't have the answer. The follow-through is: actually go learn the answer after the meeting so the next time it comes up you can answer directly.
If asked to show the Layers panel
Window, Layers. Or F7. The Layers panel appears. Looks complex. Say: "This is the master template's layer structure. The panel reads from this internally, but the operator does not interact with it directly during a run." Close the panel by clicking its X.
If asked to show the master template artwork in detail
Use the View menu. View, Fit Artboard in Window will scale the artboard to fit the screen. View, Zoom In and View, Zoom Out work for closer looks. Cmd-Plus and Cmd-Minus are the keyboard shortcuts. Cmd-0 (zero) returns to fit-in-window.
If you genuinely don't know how to do something Jay asks
Be direct without being apologetic:
"I want to make sure I give you the right answer rather than guess. Can I follow up on that one after the meeting?"
Then actually follow up. Don't let it slide. This protects credibility and signals seriousness.
Bundle walkthrough - if asked what Hershey actually receives
The deliverable bundle is staged at the engagement root. Five items.
One. The .zxp file. 70 kilobytes. Signed with a self-signed cert valid for the next eleven years. Hershey drags this onto Anastasiy.
Two. The install guide as a Word document. 16 kilobytes. Steps validated end-to-end on macOS during yesterday's testing. Windows is flagged as expected-to-work but not independently tested.
Three. The troubleshooting doc as a Word document. 14 kilobytes. Six issue categories, each with the specific symptom and the resolution. Only issues I have evidence for from testing.
Four. The asset folder as a zip. 126 megabytes. Contains the master Image 1 and Image 4 templates, the per-variety photography PSDs, the normalized claim icon PNGs in claims-icon-only/, and the renamed-disabled vector library file. Hershey unzips this to a stable location on their disk and points the panel at it.
Five. A sample-outputs folder. Four reference PNGs at 3000-by-3000, one per variety. Hershey compares their install's output against these to confirm correctness.
Bundle total is around 133 megabytes. Slack file share, Google Drive, OneDrive, or any shared-folder delivery channel handles that fine. Most email systems will reject it.
What I will not bring up unless asked
These get spoken only if someone surfaces them; otherwise they take time away from the productive thread.
• The Python compositor previews. Superseded by the actual panel outputs.
• The optical-illusion debugging around Peanut Free. Internal nuance.
• The vector library rename to .disabled. Internal mechanism.
FAQ - likely questions and prepared answers
Q: When does this actually land at Hershey? A: The bundle is staged. Jay decides the delivery channel, and the email or Slack message goes out same-day after that.
Q: What's the bundle Hershey actually receives? A: Four files plus one folder. The signed .zxp at 70 kilobytes. The install guide as a Word document at 16 kilobytes. The troubleshooting guide as a Word document at 14 kilobytes. The asset folder as a zip at 126 megabytes, containing the master templates, per-variety photography, normalized claim icons, and the renamed-disabled vector library. Plus a sample-outputs folder with four reference PNGs at 3000-by-3000 so they can compare their install's output to ours. Total bundle is 133 megabytes. Fits in Slack, Drive, Box, OneDrive. Most email systems will reject it as too large.
Q: How do future updates work? A: Bump the version in both manifests, manifest.json and CSXS/manifest.xml. Re-package with ZXPSignCmd using the same self-signed certificate so Anastasiy recognizes it as an update to the existing extension rather than a new one. Send Hershey the new .zxp. They drag it onto Anastasiy. Anastasiy replaces the old version cleanly. They restart Illustrator. New version is live. Total update time per machine is under five minutes.
Q: What if a new version misbehaves and Hershey needs to roll back? A: Anastasiy's Extension Manager supports uninstall and reinstall. They uninstall the current version, then drag in the previous .zxp. We keep all signed versions in the project tools folder, so rollback is one file send.
Q: What about the self-signed cert? Does that show a warning to Hershey? A: Yes. Exactly once during install. Anastasiy displays "this extension is unsigned, install anyway?" The troubleshooting doc walks them through that single click. As a polish item for the future, Adobe could issue a properly-signed cert that removes the warning. This is a small follow-on improvement, not a blocker.
Q: Could Hershey IT block the install for security reasons? A: It is possible. Some enterprise environments treat unsigned extensions as policy violations. If their IT pushes back, we have options: provide the cert details for their review, issue an Adobe-signed cert if they require one, or grant install permission per-designer rather than system-wide. The cert details are documented in our engagement notes. If this surfaces, Jay coordinates with Hershey IT.
Q: What about the PILLO font? A: PILLO is proprietary to SkinnyPop. It is not on Adobe Fonts and not in the standard brand pack. On my Illustrator install it rendered fine, which tells me PILLO is somehow available on my machine. Hershey's designers may or may not have it. If they don't, the master templates produce a missing-font dialog on open, designers click Skip, output renders with system substitutes. This is documented in the troubleshooting guide. For final production output Hershey installs PILLO on their designer machines. PILLO is a Hershey-side asset, outside Adobe's scope.
Q: How do they add a new variety? A: Single config entry in src/varieties.ts defining background color, headline word, claim list, and per-variety image references. Their developers can make that edit directly once they have the source. We can walk through the format in the Amanda working session when Jay schedules it.
Q: How does this scale to other Hershey brands beyond SkinnyPop? A: The panel itself is SkinnyPop-specific. The variety logic, layout rules, and asset naming all assume the SkinnyPop master template structure. For a different brand, the path is to copy the source tree, adapt the variety config and asset folder shape to the new brand's master template, and re-package as a new .zxp under a different extension ID. The codebase is compact, roughly 2,700 lines total across TypeScript and ExtendScript. The lift is primarily a config and asset adaptation exercise. We would want a working session with Hershey on the second brand to confirm the abstractions hold up before committing to a timeline.
Q: Could this move to Workflow Builder or Creative Production? A: Some operations could. The bulk Remove Background work, simple color swaps, and image resizing are exactly what Workflow Builder is built for. The piece that does not move cleanly is the vector compositing into a master AI template, which involves placing icon groups, applying per-variety color fills to path items, and re-laying out a grid with variable claim counts. CEP handles this through ExtendScript against Illustrator's DOM. Workflow Builder does not yet expose that level of Illustrator scripting. For the next year I would keep the CEP panel as the production path for SkinnyPop-style work and watch the Workflow Builder roadmap for the Illustrator-scripting node when it ships.
Q: Does the panel call any Firefly Services or Photoshop APIs at runtime? A: No. The SkinnyPop panel runs entirely inside Illustrator using ExtendScript against the open document. There are no API calls, no network traffic, no Firefly Services credit consumption. It is a local-only tool. Hershey's Firefly Services credits are not consumed by this workflow.
Q: What about the Amanda walkthrough that's been pending? A: No longer blocked by panel loading. Once we send the bundle, Jay can schedule that working session at Amanda's convenience. I will run it.
Q: Where does the source code live? What does Hershey get for their developers? A: The project folder Tom shared. That gets handed over to Hershey's dev team eventually as the source they use to bump versions, add brands, or run their own builds. Currently we are delivering the compiled .zxp plus install docs. The source-code handover is a separate later step. Jay decides timing.
Q: What if Hershey runs into something we didn't test for? A: The troubleshooting doc has a clear escalation path. Email me, include version info and a screenshot, response within a business day. That is the operational posture.
Q: Why CEP and not UXP? A: Tom's dual-mode design. Both manifests exist. CEP wins for today's distribution path because UXP for third-party Illustrator plugins still has loading-side gates that do not fit a client handoff. UXP migration is zero work when Adobe lifts those gates because the UXP manifest is already in the source.
Q: How long do we support this for Hershey? A: An engagement scope and timeline question. Jay handles. From an FDE posture, I am prepared to triage issues as they arise for at least the initial adoption window. Beyond that is a contract conversation.
Q: What about Hershey designers on Windows? A: The .zxp packaging path is platform-agnostic in principle. Anastasiy has a Windows build. The CSXS manifest is identical across platforms. The panel's HTML, JS, and JSX runtime is the same. I tested the install end-to-end on macOS only. If Hershey has designers on Windows machines, install should work identically. There is a Windows binary of ZXPSignCmd in the same Adobe CEP-Resources repo I pulled the macOS version from. The install guide flags Windows as untested-but-expected-to-work. The first Windows install report from Hershey is also the validation moment. We triage anything that surfaces.
Q: Did you actually look at the panel output, or just trust the log? A: Looked at all four PNGs at full resolution. Roasted Garlic Butter shows the 2-3-2 staggered grid with uniform icons on the maroon background. Butter and White Cheddar lay out as 3-3 with the per-variety claim sets correctly assigned. Original is the 3-3-2 with all eight claims at uniform diameter, including Dairy Free which was the worst pre-normalize outlier. I can pull them up on screen right now if anyone wants to see.
Q: Can multiple designers run this on the same Mac, or do they need separate installs? A: Anastasiy installs the extension at the system level by default, so the panel is available to any user account on that machine. Each user picks their own asset folder and output folder via the panel's Browse buttons. There is no shared state between users.
Q: Can two designers run the panel concurrently against the same asset folder? A: The panel reads from the asset folder and writes to the output folder. Two designers running on two different Illustrator installs against the same shared asset folder would both succeed. Their output folders should differ so they do not overwrite each other. If both write to the same output folder with the same variety selected at the same moment, the second write wins. In practice this collision is unlikely because the panel run takes seconds.
Q: Does the asset folder need to live on a network drive for the team? A: A shared network drive works. Each designer points the panel at the network path during configuration. The panel reads at runtime, so latency on the network mount affects only first-load time per session. For best performance Hershey could copy the asset folder locally per designer, with a process for syncing updates from a central source.
Q: How do we version-control the asset folder when Hershey updates it? A: Hershey owns the asset folder once we hand it over. Their preferred mechanism is up to them. Options: their DAM, a Git LFS repo, a shared drive with manual versioning, or their existing PIM. For changes that affect the panel's behavior, like adding a new variety, the asset folder change is paired with a panel update.
Q: What's the cert info if Hershey IT asks for review? A: Self-signed PKCS#12 certificate. Subject DN: C=US, ST=CA, O=Adobe, CN=Hershey-FDE. Valid 2026-05-20 through 2037-08-06. SHA256-signed. Not OS-trusted, which is expected for a self-signed cert. Anastasiy treats it as unsigned and shows the install-anyway prompt once.
Q: Has Adobe ever shipped a CEP extension to Hershey before this one? A: I do not have that history. Jay would know. From a deliverable perspective, this one is self-contained and Hershey can install it standalone without prior CEP experience or other Adobe extensions on their machines.
Q: What about logging or usage tracking - do we know if Hershey designers are actually using the panel? A: No telemetry built in. The panel logs to its own console pane during a generation run, but nothing leaves the local machine. If Hershey wants usage tracking down the line, that is a future enhancement requiring a small instrumentation pass.
Q: How does this compare to what you'd ship if we did this work fully via Firefly Services API? A: A Firefly Services API path would handle the photography swaps and color adjustments via Photoshop API endpoints, with the layout and typography orchestration done in a Node service. That is the MOI and Size Chart shape. For SkinnyPop specifically, the vector compositing into a master AI template is the part that benefits from being inside Illustrator via CEP. If the team eventually wants this work to run server-side instead of designer-side, the migration path is to rebuild the layout-and-composite logic against the Illustrator API, which Adobe exposes via Firefly Services. That is a larger lift than the CEP panel was.
Common derailments and how to redirect
If the meeting drifts, here are the redirects:
If someone wants to debate CEP versus UXP philosophy. > "Happy to go deep on that offline. For today's purposes the dual-mode manifest preserves both paths, and CEP is what Hershey installs. The choice doesn't change as the philosophy evolves because we already shipped both."
If someone wants to dig into the JSX or TypeScript code. > "The source is available for review. Worth scheduling a separate code walkthrough if there is interest. For today the relevant detail is that the codebase is compact and Hershey's developers can take it over when Jay decides the timing."
If someone gets stuck on Anastasiy specifically as a third-party tool. > "It has been the standard for Adobe CEP distribution for almost a decade. Free, widely-used, well-documented. The Adobe Extension Manager that Adobe used to ship was deprecated, and Anastasiy is what the ecosystem moved to. If Hershey IT pushes back, the alternative is manual install via Adobe's ExtendScript Toolkit, which is more steps but no third-party tool dependency. We have not had to use that path so far."
If someone wants to talk about asset library management strategy. > "That is a Hershey-side conversation. The panel reads from whatever folder they point it at. How they manage versioning, distribution, and access control of that folder is up to them. We can advise if asked but it is outside the panel's scope."
If the conversation veers into MOI's layered-file problem. > "Nikki has that thread going. Worth a separate meeting once she has the layered files question answered. For today's purposes the handoff pattern is the same regardless of how MOI's input contract lands."
Reference files for the live screen-share
Have these open in tabs before the meeting starts.
Topic File
Hershey install guide (markdown source) docs/skinnypop-install-guide.md
Hershey install guide (DOCX, client-ready) docs/skinnypop-install-guide.docx
Troubleshooting (markdown source) docs/skinnypop-troubleshooting.md
Troubleshooting (DOCX, client-ready) docs/skinnypop-troubleshooting.docx
This voiceover docs/5-22-meeting-voiceover.md
The .zxp itself tools/skinnypop-omni-generator-1.0.0.zxp
Cert that signed it tools/adobe-fde-cert.p12
Asset folder (source) assets/skinnypop/
Asset folder (packaged for bundle) hershey-deliverable/asset-folder.zip
Sample outputs assets/skinnypop-output/SkinnyPop_Image4_{Original,Butter,WhiteCheddar,RoastedGarlicButter}.png
Staged Hershey bundle hershey-deliverable/
Dual-mode CSXS manifest repo/hershey_ps_poc/illustrator-extension/CSXS/manifest.xml
Dual-mode UXP manifest repo/hershey_ps_poc/illustrator-extension/manifest.json
Closing - when wrapping up
Net of all of this: SkinnyPop is at the production-handoff threshold. The bundle is ready. Documentation is grounded in actual install testing. I am prepared to support adoption as Hershey rolls it out. Any SkinnyPop install questions, ping me on Slack or email. Subject line [SkinnyPop Panel] routes fast.
Pre-meeting setup checklist
Twenty minutes before the meeting:
1. Open Illustrator with the Image 4 master template loaded. Panel docked. Asset folder and output folder already selected from yesterday.
2. Open Finder with tools/skinnypop-omni-generator-1.0.0.zxp visible. Drag-ready if Jay wants to see the install path.
3. Open docs/skinnypop-install-guide.docx in Word in a separate window.
4. Open all four assets/skinnypop-output/SkinnyPop_Image4_*.png in Preview, ready to flip between with Cmd+1 through Cmd+4.
5. Open this voiceover in a window on a secondary monitor if you have one. Otherwise on your phone.
6. Test screen-share five minutes early. Confirm the Illustrator window shares cleanly.
7. Have water nearby. Long Q&A sections are where dry mouth surfaces.
What would make tomorrow excellent
1. Open every screen-share artifact before the meeting starts. No "let me find that file" moments.
2. Run the live demo if Jay asks. The pre-loaded panel turns one click into a real-time proof.
3. Credit Tom by name when describing the dual-mode manifest. Sets up continuity and lands well with everyone who worked with him.
4. Keep the opening to ninety seconds. The room rewards conciseness.
5. End with the operational handle: "if anyone has a SkinnyPop install question or wants the bundle, ping me." Become the single point of contact, which is what Jay wants.
6. Take notes during Q&A. Even brief ones. Shows seriousness and gives you a real list of follow-ups to ship next week.
![]() |
Notes is a web-based application for online taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000+ notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 14 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team
