@cliangdev/conductor 0.24.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/assets/claude/commands/conductor/creative.md +90 -0
  2. package/assets/claude/skills/conductor-creative/SKILL.md +129 -51
  3. package/assets/claude/skills/conductor-creative/references/brand-kit-setup.md +41 -0
  4. package/assets/cli-manifest.json +38 -3
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +2 -1
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/start.d.ts.map +1 -1
  9. package/dist/commands/start.js +2 -0
  10. package/dist/commands/start.js.map +1 -1
  11. package/dist/creative/assertions.js +22 -11
  12. package/dist/creative/frame.js +3 -3
  13. package/dist/creative/job/file-transport.mjs +211 -0
  14. package/dist/creative/job/render.mjs +84 -2
  15. package/dist/creative/job/server.mjs +70 -13
  16. package/dist/lib/creative-render.d.ts +62 -0
  17. package/dist/lib/creative-render.d.ts.map +1 -1
  18. package/dist/lib/creative-render.js +51 -0
  19. package/dist/lib/creative-render.js.map +1 -1
  20. package/dist/lib/plugin-assets.d.ts +48 -1
  21. package/dist/lib/plugin-assets.d.ts.map +1 -1
  22. package/dist/lib/plugin-assets.js +272 -22
  23. package/dist/lib/plugin-assets.js.map +1 -1
  24. package/dist/mcp/api.d.ts +18 -1
  25. package/dist/mcp/api.d.ts.map +1 -1
  26. package/dist/mcp/api.js +20 -2
  27. package/dist/mcp/api.js.map +1 -1
  28. package/dist/mcp/index.d.ts +2414 -471
  29. package/dist/mcp/index.d.ts.map +1 -1
  30. package/dist/mcp/index.js +246 -77
  31. package/dist/mcp/index.js.map +1 -1
  32. package/dist/mcp/tools/creative-drafts.d.ts +134 -0
  33. package/dist/mcp/tools/creative-drafts.d.ts.map +1 -0
  34. package/dist/mcp/tools/creative-drafts.js +405 -0
  35. package/dist/mcp/tools/creative-drafts.js.map +1 -0
  36. package/dist/mcp/tools/creatives.d.ts +60 -0
  37. package/dist/mcp/tools/creatives.d.ts.map +1 -1
  38. package/dist/mcp/tools/creatives.js +219 -23
  39. package/dist/mcp/tools/creatives.js.map +1 -1
  40. package/package.json +1 -1
  41. package/scripts/build-creative.mjs +1 -0
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: conductor:creative
3
+ description: One entry point for Conductor creative work — checks the workspace brand, offers to set it up if it's never been configured, asks what to make (static ad, short video, an existing clip), gathers the few inputs needed, then hands off to the conductor-creative skill through draft, preview, approval, commit and attach.
4
+ allowed-tools: mcp__conductor__*, AskUserQuestion, Skill, WebFetch, Read, Glob, Grep
5
+ ---
6
+
7
+ # /conductor:creative
8
+
9
+ Guided entry point for making a Post's artwork — a static ad, a short video, or posting a video
10
+ already on hand. Keeps the interaction short: a couple of questions, then it hands off to the
11
+ `conductor-creative` skill (`Skill(skill: "conductor-creative")`) for the actual writing, rendering
12
+ and judgment calls. This command doesn't replace that skill's guidance — read it once invoked and
13
+ follow it.
14
+
15
+ ## Trigger
16
+
17
+ `/conductor:creative`, or a request to make/design a social ad, a short video, or post a clip.
18
+
19
+ ## Step 1 — Check the brand
20
+
21
+ Read `references/brand-kit-setup.md` in the `conductor-creative` skill
22
+ (`.claude/skills/conductor-creative/references/brand-kit-setup.md`, in this project or under `~/.claude`)
23
+ and follow it: check the Brand Kit, and offer to set it up if it has never been configured. Then
24
+ continue with Step 2.
25
+
26
+ ## Step 2 — What to make
27
+
28
+ ```json
29
+ {
30
+ "questions": [{
31
+ "question": "What would you like to create?",
32
+ "header": "Creative Type",
33
+ "options": [
34
+ {"label": "Static ad", "description": "A photo + headline, rendered at every enabled placement"},
35
+ {"label": "Short video from a photo", "description": "Animated text over a still photo or a moving background"},
36
+ {"label": "Video from a clip I have", "description": "Animate the brand layout using an existing video as background"},
37
+ {"label": "Post an existing video as-is", "description": "No brand layout — the finished clip goes up directly"},
38
+ {"label": "Test a headline variant", "description": "A lettered variant of an existing Creative, for a hook test"}
39
+ ],
40
+ "multiSelect": false
41
+ }]
42
+ }
43
+ ```
44
+
45
+ ## Step 3 — Gather the few inputs that choice needs
46
+
47
+ Keep this light — one or two follow-up questions, not a form:
48
+
49
+ - **Static ad / short video from a photo**: the headline (or let the skill draft one from the
50
+ Knowledge page), and a photo. Call `list_creative_media({kind: "IMAGE"})` first and offer what's
51
+ already on hand before asking for a new photo. A new photo is a local file path (a URL: download it
52
+ to a local file first) — it is only uploaded after the person approves the preview.
53
+ - **Video from a clip I have / Post an existing video as-is**: call
54
+ `list_creative_media({kind: "VIDEO"})` first; if nothing fits, ask for a local path (a URL:
55
+ download it first). A clip used as a MOTION background is previewed from the local file too.
56
+ - **Test a headline variant**: ask which existing Creative (id or display id like `12a`) and the new
57
+ headline.
58
+
59
+ ## Step 4 — Hand off to the skill
60
+
61
+ Call `Skill(skill: "conductor-creative")` and follow it from wherever this command's gathering left
62
+ off — angle, copy rules, layout, then the draft-first flow: `preview_creative_draft`, look at the
63
+ image, ask for approval, and only then `commit_creative_draft`. Don't re-derive what that skill
64
+ already covers.
65
+
66
+ ## Step 5 — Preview, approve, commit, attach
67
+
68
+ Nothing is saved to Conductor until the person approves what they have seen:
69
+
70
+ 1. `preview_creative_draft` with what was gathered (local files go in `photoPath`/`clipPath`/
71
+ `audioPath`; an edit to an existing Creative passes `baseCreativeId`). It renders on this machine
72
+ and returns the image — no Creative is created and nothing is uploaded.
73
+ 2. Read `passed` and `checks` in the result first. The preview runs the full render's per-placement
74
+ checks (text spill, platform safe zones such as TikTok/Reels' overlay band, contrast, fonts,
75
+ images), so a design that would fail the real render shows up here. If `passed` is false, fix the
76
+ design (shorter copy, `layoutOverrides`, `typeOverrides`, a different layout) and preview again
77
+ **before** showing it or asking anything — never offer Approve & upload while a blocking check
78
+ fails, and tell the person what you changed. (Bigger or smaller text on one placement is
79
+ `typeOverrides`, e.g. `{"9x16": [96]}`, not a layout switch.)
80
+ 3. Once `passed` is true, look at the image against the skill's checklist, then show it and ask with
81
+ `AskUserQuestion`: Approve & upload / Request changes / Stop. On changes, preview again; on
82
+ Stop, leave it — the draft stays local under `.conductor/drafts/`.
83
+ 4. On approval, `commit_creative_draft` with the `draftDir`. It uploads the files, saves the
84
+ Creative and does the full render. (A headline variant is previewed with `baseCreativeId` plus the
85
+ new headline, but on approval is saved with `create_creative` and `variantOf` — never commit that
86
+ draft, which would update the original.)
87
+ 5. Once the skill's readiness check passes, `attach_creative_to_post` if there's already a Post to
88
+ attach it to (ask for the Post's id if not obvious from context). If there is no Post yet, say so
89
+ plainly and name the next step — creating one via the `conductor-publisher` skill — rather than
90
+ leaving the artwork stranded with no stated destination.
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: conductor-creative
3
- description: Creates on-brand ad creative through the Conductor MCP tools — a photo plus headline rendered at every enabled placement (e.g. TikTok/Reels 9:16, Instagram feed 4:5, Facebook 1:1, plus any opt-in placements) from a workspace's Brand Kit, rendered locally on this machine and checked by eye before it's called done. Use when asked to make, design, write or export a social ad, an ad creative, a promo image, a static ad, a story or carousel sequence, or a new lettered variant (headline test) of one.
3
+ description: Creates on-brand marketing creative through the Conductor MCP tools — static ads and short videos alike, rendered locally on this machine as a draft, checked by eye and approved before anything is saved to Conductor. Covers a photo-plus-headline ad at every enabled placement (e.g. TikTok/Reels 9:16, Instagram feed 4:5, Facebook 1:1); a short video made from a still photo or an existing clip (animated text, zoom/pan, background music, a TikTok/Reels/Shorts-ready cut); posting a finished video as-is; a story or carousel sequence; a lettered headline/hook variant for testing; and, when a workspace's Brand Kit has never been set up, setting one up first (colours, font, logo, copy rules) from a website, a brand doc, or a few direct answers. Use when asked to make, design, write or export a social ad, a promo image, a short-form video, an animated ad, or to configure/update a project's brand.
4
4
  user-invocable: true
5
- allowed-tools: mcp__conductor__*, AskUserQuestion, Read, Glob, Grep
5
+ allowed-tools: mcp__conductor__*, AskUserQuestion, Read, Glob, Grep, WebFetch
6
6
  ---
7
7
 
8
8
  # Conductor Creative
@@ -17,7 +17,13 @@ things that already exist for this workspace — a Brand Kit (data: tokens, copy
17
17
  lines) and a Knowledge page (prose: positioning, voice, facts). Read them rather than inventing.
18
18
 
19
19
  Rendering happens locally, through this MCP server, with a browser on this machine — there is no
20
- separate render service to wait on. `render_creative` typically finishes in well under a minute.
20
+ separate render service to wait on. A preview typically finishes in well under a minute.
21
+
22
+ **Draft first, save after approval.** Every Creative here goes draft, look, approve, commit:
23
+ `preview_creative_draft` renders the artwork on this machine and writes **nothing** to Conductor — no
24
+ Creative, no upload — then the person looks at it, and only on their approval does
25
+ `commit_creative_draft` upload the media, save the Creative and do the full render. Never commit a
26
+ draft the person has not seen and approved.
21
27
 
22
28
  ## How to make a Creative
23
29
 
@@ -31,6 +37,14 @@ brand's positioning, message hierarchy, approved verbatim lines and voice in pro
31
37
  with `read_knowledge_pages` before writing anything. Quote its approved lines rather than
32
38
  paraphrasing them; they were worded and cleared on purpose.
33
39
 
40
+ **If `configured` comes back `false`**, this kit has never been touched — a brand-free stock
41
+ default, not this workspace's actual brand. Set it up before writing any ad rather than rendering
42
+ against placeholder tokens: gather colours, font, CTA claim and any copy rules or approved lines
43
+ (from a website via `WebFetch`, a brand doc via `Read`, or by asking directly), then call
44
+ `update_brand_kit` for the data fields and `upload_brand_image` for the mark/wordmark/badge. Confirm
45
+ with `get_brand_kit` afterward — `configured` should now read `true`. (`/conductor:creative` walks
46
+ a person through exactly this when invoked with no brand set up yet, if you'd rather hand it off.)
47
+
34
48
  ### 2. Pick the angle
35
49
 
36
50
  Lead with whatever the brand's own message hierarchy puts first — the job the product does end to
@@ -42,8 +56,8 @@ Prefer an approved line from the Knowledge page verbatim. Otherwise write one th
42
56
  real and specific, not a generic claim.
43
57
 
44
58
  If the Brand Kit's `accentPhraseRequired` is true, mark exactly one phrase per headline with
45
- asterisks: `Every saved link, *finally usable*.` Never zero, never two — `create_creative` and
46
- `update_creative` refuse a headline that gets this wrong, naming the rule.
59
+ asterisks: `Every saved link, *finally usable*.` Never zero, never two — `preview_creative_draft`,
60
+ `create_creative` and `update_creative` refuse a headline that gets this wrong, naming the rule.
47
61
 
48
62
  Keep it short — checked at thumbnail size, not read up close.
49
63
 
@@ -56,14 +70,18 @@ it. A kit with no rules configured is not a bug; it simply never fails a save on
56
70
 
57
71
  ### 5. Choose the photo and look at it
58
72
 
59
- Call `list_creatives`/an existing photo library read, or check what photos are already on hand
60
- before uploading a new one. A photo needs `checked: true` and not `blocked` before a Creative can
61
- go to `READY` — see the photo library's own listing for that state.
73
+ Call `list_creative_media` (optionally `kind: "IMAGE"`) to see what's already on hand before
74
+ uploading a new one — id, dimensions, checked/blocked state and provenance for everything already in
75
+ the project's media library. A photo needs `checked: true` and not `blocked` before a Creative can
76
+ go to `READY`.
62
77
 
63
- A new photo goes through `upload_creative_photo` (local path or URL), which requires `source` (a
64
- URL or a short provenance note, e.g. "Generated with a named model on a given date") and `licence`
65
- (e.g. "Own work", "Unsplash Licence", "Generated, house use"). This closes a real legal exposure: an
66
- unattributed or unlicensed photo running as paid or organic media.
78
+ A photo that is not in the library yet is previewed straight from its local file (`photoPath` on
79
+ `preview_creative_draft`; a URL is downloaded to a local file first) and is only uploaded when the
80
+ draft is committed — pass `source` (a URL or a short provenance note, e.g. "Generated with a named
81
+ model on a given date") and `licence` (e.g. "Own work", "Unsplash Licence", "Generated, house use")
82
+ to `commit_creative_draft`, which records them on every file it uploads. This closes a real legal
83
+ exposure: an unattributed or unlicensed photo running as paid or organic media. A photo already in
84
+ the library is used by its id (`photoId`) with no upload at all.
67
85
 
68
86
  **Open the photo and look at it before using it.** A picture can break every copy rule with text,
69
87
  a logo or a claim burned into its pixels, and no automated check can see that — this is the first
@@ -74,48 +92,98 @@ Match the crop to the subject: a layout that lays copy over the photo (e.g. `ble
74
92
  the top third in collision with the headline — prefer a layout that keeps the photo and copy on
75
93
  separate panels (e.g. `stacked`) for those.
76
94
 
77
- ### 6. Create, then render
78
-
79
- `create_creative` with the Brand Kit (if not the default), layout, theme, photo, headline, body,
80
- caption and alt text. To test a headline variant of an existing concept, pass `variantOf` with that
81
- Creative's id instead of starting fresh — it inherits everything else and gets the next letter.
82
- Then call `get_creative` to verify what was actually stored.
83
-
84
- `render_creative` (previewOnly: true first, for a quick contact sheet) runs the render locally and
85
- returns the render id, state, frame URLs and any warnings. Then `preview_creative` to actually look
86
- at it — it returns the contact sheet as an image directly, not just a URL to trust.
95
+ ### 6. Preview the draft
96
+
97
+ `preview_creative_draft` with the Brand Kit (if not the default), layout, theme, photo (`photoPath`
98
+ for a local file, `photoId` for one already in the library), headline, body, caption and alt text.
99
+ It renders a contact sheet on this machine and returns it as an image, with the `draftDir` it wrote
100
+ to (`.conductor/drafts/<timestamp>-<slug>/`), the readiness gaps and any render warnings. **Nothing
101
+ has been saved to Conductor.** A copy-rule or accent-phrase violation comes back as an error naming
102
+ the rule and field, without rendering — fix the copy and preview again.
103
+
104
+ To change an existing Creative's copy, layout or photo, preview the edit first with `baseCreativeId`:
105
+ only the fields you pass change, and the commit then updates that Creative instead of creating one.
106
+
107
+ To test a headline variant of an existing concept, preview the new headline the same way
108
+ (`baseCreativeId` plus `headline`) so the person sees it on the artwork — but do **not** commit that
109
+ draft, since a commit would update the original. Once they approve, call `create_creative` with
110
+ `variantOf` and the headline instead: it inherits everything else and gets the next letter.
111
+
112
+ Pass `full: true` to render every placement at full size instead of the contact sheet (slower; the
113
+ image returned is the first placement).
114
+
115
+ **Read `checks` and `passed` before you show anything.** The contact sheet never runs the render's
116
+ safety checks, so the preview also runs them for every placement (and, for a video, its end card)
117
+ and returns them as `checks: [{placementKey, index?, rule, message, severity}]` plus `passed`. An
118
+ `error` check (`safeZone`, `spill`, `contrast`, `font`, `image`, ...) is exactly what would fail the
119
+ full render after the person approved: e.g. an App Store badge intruding into the band TikTok/Reels
120
+ reserve on 9:16. A `warning` (a soft, upscaled photo) does not block, but mention it.
121
+
122
+ When `passed` is false, **do not show the image or ask for approval yet.** Fix the design and
123
+ preview again, repeating until `passed` is true:
124
+
125
+ - the copy collides with a reserved zone: shorten the headline or drop the body;
126
+ - the photo takes too much of a placement: lower its height there with `layoutOverrides.band`
127
+ (e.g. `{"band": {"9x16": 1100}}`);
128
+ - the bottom row (CTA/badge) does not clear the safe zone: raise the clearance with
129
+ `layoutOverrides.padBottom`, or pick a layout that keeps it clear;
130
+ - the text is too large or too small for a placement: set it with `typeOverrides` (below).
131
+
132
+ Tell the person what you changed and why when you do show it. Never offer **Approve & upload**
133
+ while a blocking check fails.
134
+
135
+ **Bigger or smaller text on one placement: use `typeOverrides`, not a different layout.** It pins
136
+ the headline per placement as `{"<placementKey>": [fontSize, lineHeight?, letterSpacing?]}`, e.g.
137
+ `{"9x16": [96], "1x1": [88]}` for a bigger headline on 9:16 and 1:1. `fontSize` is in artboard px
138
+ (a 9:16 board is 1080 wide), `lineHeight` a multiplier (e.g. `1.0`) and `letterSpacing` in px
139
+ (usually negative); leave the last two out to take the engine's defaults for that size. A placement
140
+ you do not name stays auto-fitted. A pinned size is not shrunk to fit, so re-check `checks` after
141
+ setting one. It works on `preview_creative_draft` and `create_creative`/`update_creative`; changing
142
+ the headline or layout of a saved Creative clears pinned sizes unless you send them again.
87
143
 
88
144
  ### 7. Look at the result honestly
89
145
 
90
- **A successful render proves the frame is structurally correct, not that the ad is good.** Its
91
- in-page checks catch text spilling out of a safe zone, a font that failed to load, a photo that
146
+ **Passing checks prove the frame is structurally correct, not that the ad is good.** The checks
147
+ (`passed: true`) catch text spilling out of a safe zone, a font that failed to load, a photo that
92
148
  never decoded, or contrast below the accessible minimum — not whether the headline reads at a
93
149
  glance, whether the accent phrase falls on the words that carry the meaning, or whether the copy is
94
- sitting on the subject's face. Judge those yourself from the image `preview_creative` hands back. If
95
- the copy collides with the photo, switch layout (see step 5) and re-render rather than shrinking
96
- text until it technically fits.
150
+ sitting on the subject's face. Judge those yourself from the image `preview_creative_draft` hands
151
+ back. If the copy collides with the photo, switch layout (see step 5) and preview again rather than
152
+ shrinking text until it technically fits.
153
+
154
+ Only once `passed` is true, show the image to the person and ask with `AskUserQuestion` —
155
+ **Approve & upload**, **Request changes**, **Stop**. If `passed` is false you are not at this step
156
+ yet: fix it and re-preview first (step 6). On changes, preview again with the edits (another draft; nothing was saved). On
157
+ Stop, leave it: the draft stays on this machine under `.conductor/drafts/` and is cleaned up
158
+ automatically once it is committed or two weeks old. Only on **Approve & upload**, call
159
+ `commit_creative_draft({draftDir})` with the `draftDir` the approved preview returned.
97
160
 
98
161
  ### 8. Check readiness before calling it done
99
162
 
100
- `get_creative` includes a `readiness` block: caption, alt text, the photo's checked/blocked state
163
+ The preview already lists the readiness gaps, so fix what you can (caption, alt text, a checked
164
+ photo) before asking for approval. After the commit, `get_creative` includes a `readiness` block: caption, alt text, the photo's checked/blocked state
101
165
  and provenance, and the Creative's own state (not `DRAFT`) are blocking; an AI-generation disclosure
102
166
  is informational only. Do not call a Creative done while `ready` is false.
103
167
 
104
- ### 9. Render for real, then hand off
168
+ ### 9. Commit, then hand off
105
169
 
106
- Once the preview looks right, `render_creative` again with `previewOnly: false` (or omitted) for the
107
- full-size placement frames, then `attach_creative_to_post` with the Post's Work Item id — it maps
108
- each placement to the right destinations (9:16 to TikTok/Reels, 4:5 to Instagram feed, 1:1 to
109
- Facebook, story to story targets) for every destination that has not set its own custom media, and
110
- never touches one that has. Verify with `get_post_status`. From here, use the `conductor-publisher`
111
- skill for scheduling, review and publishing — this skill's job ends at attaching the artwork.
170
+ `commit_creative_draft` uploads the draft's local files, creates the Creative (or updates
171
+ `baseCreativeId`'s), and runs the full-size render in one call, then returns the Creative id and
172
+ display id, the frames and the readiness. It can be run once per draft; if its render fails the
173
+ Creative is already saved — call `render_creative`, don't commit again. Verify with `get_creative`.
174
+ Then `attach_creative_to_post` with the Post's Work Item id — it maps each placement to the right
175
+ destinations (9:16 to TikTok/Reels, 4:5 to Instagram feed, 1:1 to Facebook, story to story targets)
176
+ for every destination that has not set its own custom media, and never touches one that has. Verify
177
+ with `get_post_status`. From here, use the `conductor-publisher` skill for scheduling, review and
178
+ publishing — this skill's job ends at attaching the artwork.
112
179
 
113
180
  ## Making a sequence instead of a single ad
114
181
 
115
182
  For a platform surface that's tapped or swiped through, set `sequenceKind` to `story` (2 to 7
116
- beats, aim for 3 to 5) or `carousel` (2 to 10 cards, 5 to 7 performs best) on `create_creative` or
117
- `update_creative`, with a `sequence` array. Each beat inherits the Creative and overrides only its
118
- own `headline`, and optionally `body`, `photoId` or `cta`. Structure a story hook, mechanism,
183
+ beats, aim for 3 to 5) or `carousel` (2 to 10 cards, 5 to 7 performs best) on
184
+ `preview_creative_draft` (then `commit_creative_draft`), with a `sequence` array. Each beat inherits
185
+ the Creative and overrides only its own `headline`, and optionally `body`, `photoPath` (a local
186
+ photo, uploaded on commit) or `photoId`, or `cta`. Structure a story hook, mechanism,
119
187
  payoff — the first beat has to earn the next tap on its own, since that's where the drop-off is
120
188
  worst. A logo lockup and CTA claim land on the last beat only by default; `cta: true` on an earlier
121
189
  beat overrides that. A carousel renders every card at one shared aspect ratio (`carouselRatio`),
@@ -127,9 +195,13 @@ Not every video needs the brand layout above — a finished clip (a demo recordi
127
195
  something a person or another tool already produced) can go up as-is. That's a CLIP Creative: no
128
196
  photo, headline or layout, just the video.
129
197
 
130
- 1. `upload_creative_media` (local path or URL) — same provenance fields as a photo (`source`,
131
- `licence`, `aiGenerated`). It detects video vs. audio vs. photo automatically and, for a video,
132
- extracts a poster frame. Use the returned media's id below.
198
+ A CLIP has no artwork to render, so it is the one flow without a draft preview: open the video
199
+ itself and check it with the person before uploading.
200
+
201
+ 1. Check `list_creative_media({kind: "VIDEO"})` for a clip already in the project before uploading a
202
+ new one. A new one goes through `upload_creative_media` (local path or URL) — same provenance
203
+ fields as a photo (`source`, `licence`, `aiGenerated`). It detects video vs. audio vs. photo
204
+ automatically and, for a video, extracts a poster frame. Use the media's id below either way.
133
205
  2. `create_creative` with `kind: "CLIP"` and `clipMedia`. One file for every placement:
134
206
  `{"default": mediaId}`. A different cut per placement (e.g. a square edit for feed, a vertical one
135
207
  for Reels): `{"9x16": mediaId, "4x5": mediaId}` — `default` still covers any placement without its
@@ -151,9 +223,12 @@ A MOTION Creative animates the same brand layout from steps 1-5 above into a sho
151
223
  of a static frame — no separate video tool needed. Use it when a still doesn't hold attention, or a
152
224
  destination rewards video over an image.
153
225
 
154
- 1. Pick a photo (step 5) or, for a moving background, `upload_creative_media` a video first and
155
- note its media id.
156
- 2. `create_creative`/`update_creative` with `kind: "MOTION"` plus:
226
+ 1. Pick a photo (step 5) or, for a moving background, a video — check `list_creative_media({kind:
227
+ "VIDEO"})` first and use its media id if something fits; otherwise pass the local file as
228
+ `clipPath` (previewed from disk, uploaded on commit). For background music,
229
+ `list_creative_media({kind: "AUDIO"})` the same way, else `audioPath`.
230
+ 2. `preview_creative_draft` with `kind: "MOTION"` (to change a saved MOTION Creative, `baseCreativeId`
231
+ instead) plus:
157
232
  - `motion.preset` — how the copy enters: `fade-up` (default), `word-by-word`, `accent-pop`, or
158
233
  `none` (everything visible from the first frame).
159
234
  - `motion.durationSec` — 3 to 60, default 8.
@@ -165,13 +240,13 @@ destination rewards video over an image.
165
240
  - `audio` — `source: "clip"` (the background clip's own recorded sound — the default when there
166
241
  is one), `"track"` (a separate library track: `trackId` from `upload_creative_media`, plus
167
242
  `volume` and `fadeOutSec`), or `"none"`.
168
- 3. `render_creative` runs a local, ffmpeg-driven encode — roughly 20 seconds per placement for an
169
- 8-second video. No ffmpeg on this machine fails with a clear message naming how to get one rather
170
- than silently producing nothing.
171
- 4. `preview_creative` renders three key moments across the timeline into one sheet image (not the
172
- finished video). Judge it the same honest way as step 7 above — does the copy's entrance finish
173
- before the next beat, does the end card actually hold long enough to read — before spending a
174
- full render on it.
243
+ 3. The preview renders three key moments across the timeline into one sheet image (not the finished
244
+ video). Judge it the same honest way as step 7 above — does the copy's entrance finish before the
245
+ next beat, does the end card actually hold long enough to read — and get approval before
246
+ spending a full render on it.
247
+ 4. `commit_creative_draft` then uploads the media, saves the Creative and runs the local,
248
+ ffmpeg-driven encode — roughly 20 seconds per placement for an 8-second video. No ffmpeg on this
249
+ machine fails with a clear message naming how to get one rather than silently producing nothing.
175
250
  5. `attach_creative_to_post`, same as any Creative — one MP4 per placement.
176
251
 
177
252
  A library music track's `licence` has to be recorded on upload (same as a photo's provenance) — the
@@ -191,6 +266,9 @@ Automated checks are real but incomplete. These are the ones worth remembering t
191
266
  - **A Brand Kit with no copy rules, or no accent-phrase requirement, never fails a save on that
192
267
  account.** That is permissive by design, not a bug — but it means the model, not the platform, is
193
268
  the only check on brand voice for that workspace until someone configures rules.
269
+ - **A draft is not a saved Creative.** `preview_creative_draft` writes nothing to Conductor, so a
270
+ Creative or media id does not exist until `commit_creative_draft` runs — don't hand a draft's
271
+ folder to `attach_creative_to_post` or a Post.
194
272
  - **A stale write is refused, not silently overwritten.** `update_creative` requires the Creative's
195
273
  current `version`; a mismatch comes back as a 409 naming the conflict rather than clobbering a
196
274
  concurrent edit — reread with `get_creative` and reapply, don't retry blind.
@@ -0,0 +1,41 @@
1
+ # Brand Kit check and setup
2
+
3
+ Shared by `/conductor:creative` and the `conductor-creative` skill: check whether this workspace's
4
+ Brand Kit has been set up, and offer to set it up if not. The text below is the command's Step 1,
5
+ unchanged.
6
+
7
+ ## Step 1 — Check the brand
8
+
9
+ Call `get_brand_kit` (pass `kitId` only if the person already named a specific brand).
10
+
11
+ **If `configured` is `false`**, this workspace has no brand set up yet — offer to fix that before
12
+ making anything:
13
+
14
+ ```json
15
+ {
16
+ "questions": [{
17
+ "question": "This workspace's Brand Kit hasn't been set up yet (default colours, no font, no logo). Set it up now?",
18
+ "header": "Brand Kit",
19
+ "options": [
20
+ {"label": "From a website", "description": "Fetch a URL and infer colours, voice and name"},
21
+ {"label": "From a brand doc", "description": "Read a local file (guidelines, style doc)"},
22
+ {"label": "Answer a few questions", "description": "Name, colours, font, CTA line, approved lines"},
23
+ {"label": "Skip for now", "description": "Proceed with the default kit as-is"}
24
+ ],
25
+ "multiSelect": false
26
+ }]
27
+ }
28
+ ```
29
+
30
+ - **From a website**: ask for the URL, `WebFetch` it, infer a plausible accent colour, name, CTA
31
+ claim and a couple of approved lines from the copy on the page. Show what you inferred and confirm
32
+ before writing.
33
+ - **From a brand doc**: ask for the file path, `Read` it, extract the same fields, confirm before
34
+ writing.
35
+ - **Answer a few questions**: ask for name, primary/accent colour (hex or a description you convert),
36
+ font (if any), the CTA claim, and any lines that must run verbatim. Keep it to one AskUserQuestion
37
+ batch, not a long interview.
38
+ - Once confirmed, call `update_brand_kit` with whatever was gathered. If a logo file or URL is
39
+ available, `upload_brand_image` for the `mark` slot at least. Verify with `get_brand_kit` —
40
+ `configured` should now read `true`.
41
+ - **Skip for now**: proceed; the skill below will render against the default kit as given.
@@ -168,6 +168,10 @@
168
168
  {
169
169
  "name": "conductor:workflow",
170
170
  "description": "Design and create a Conductor workflow \u2014 YAML automation or statechart lifecycle \u2014 via guided discovery and MCP creation."
171
+ },
172
+ {
173
+ "name": "conductor:creative",
174
+ "description": "One entry point for creative work \u2014 checks the workspace brand (offers to set it up if unconfigured), asks what to make (static ad, short video, an existing clip), then hands off to the conductor-creative skill through draft, preview, approval, commit and attach."
171
175
  }
172
176
  ],
173
177
  "agents": [
@@ -191,7 +195,7 @@
191
195
  },
192
196
  {
193
197
  "name": "conductor-creative",
194
- "description": "Makes a Creative end to end: reads the Brand Kit and its Knowledge page, picks a photo and an angle, creates the Creative, renders and looks at the result, fixes what's wrong, then hands it to conductor-publisher."
198
+ "description": "Makes a Creative end to end, static or short video: sets up the Brand Kit if unconfigured, reads it and its Knowledge page, picks media and an angle, previews a draft locally and shows it for approval before anything is saved, commits it, fixes what's wrong, then hands it to conductor-publisher."
195
199
  }
196
200
  ]
197
201
  },
@@ -722,7 +726,25 @@
722
726
  },
723
727
  {
724
728
  "name": "get_brand_kit",
725
- "description": "Read a workspace Brand Kit: colour tokens, font, logo/wordmark/badge URLs, CTA claim, copy rules, approved lines, enabled placements, and the Knowledge page path holding its prose context.",
729
+ "description": "Read a workspace Brand Kit: colour tokens, font, logo/wordmark/badge URLs, CTA claim, copy rules, approved lines, enabled placements, and the Knowledge page path holding its prose context. Carries configured: false plus a nextStep when the kit has never been edited.",
730
+ "category": "marketing"
731
+ },
732
+ {
733
+ "name": "update_brand_kit",
734
+ "description": "Patch a workspace Brand Kit's name, tokens, font, CTA claim, copy rules, approved lines or enabled placements. tokens merges onto the existing set; every other field is set-replace.",
735
+ "category": "marketing"
736
+ },
737
+ {
738
+ "name": "upload_brand_image",
739
+ "description": "Upload a logo mark, wordmark or badge into a Brand Kit image slot from a local file or a public URL, in one call.",
740
+ "category": "marketing",
741
+ "requiredParams": [
742
+ "slot"
743
+ ]
744
+ },
745
+ {
746
+ "name": "list_creative_media",
747
+ "description": "The project's media library (photos, videos, audio) with review state and provenance. Call before uploading to reuse existing media.",
726
748
  "category": "marketing"
727
749
  },
728
750
  {
@@ -759,7 +781,7 @@
759
781
  },
760
782
  {
761
783
  "name": "upload_creative_photo",
762
- "description": "Deprecated alias for upload_creative_media — same behavior, including for video/audio.",
784
+ "description": "Deprecated alias for upload_creative_media \u2014 same behavior, including for video/audio.",
763
785
  "category": "marketing"
764
786
  },
765
787
  {
@@ -778,6 +800,19 @@
778
800
  "creativeId"
779
801
  ]
780
802
  },
803
+ {
804
+ "name": "preview_creative_draft",
805
+ "description": "Look at a Creative before anything is saved: renders a draft locally from the create_creative fields plus local files (photoPath, clipPath, audioPath) and returns the contact sheet as an image. Never writes to Conductor; commit only after the person approves.",
806
+ "category": "marketing"
807
+ },
808
+ {
809
+ "name": "commit_creative_draft",
810
+ "description": "Save an approved draft: uploads its local files, creates (or updates) the Creative, and renders the real frames. The first write to Conductor; a draft commits once. Call get_creative to verify.",
811
+ "category": "marketing",
812
+ "requiredParams": [
813
+ "draftDir"
814
+ ]
815
+ },
781
816
  {
782
817
  "name": "attach_creative_to_post",
783
818
  "description": "Attach a Creative's rendered frames to a Post as its media, placement to platform, for every destination without its own custom media. Call get_post_status (postId) to verify.",
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUnC,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED,UAAU,OAAO;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAOD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAUzD;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAGvE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAc3E;AA2DD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6KnD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUnC,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED,UAAU,OAAO;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAOD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAUzD;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAGvE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAc3E;AA2DD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8KnD"}
@@ -9,7 +9,7 @@ import { readConfig, writeConfig } from '../lib/config.js';
9
9
  import { apiGet, apiPost } from '../lib/api.js';
10
10
  import { findAvailablePort, waitForOAuthCallback } from '../lib/oauth-server.js';
11
11
  import { startDaemon } from './start.js';
12
- import { installPluginAssets, getAssetSrcDir } from '../lib/plugin-assets.js';
12
+ import { installPluginAssets, getAssetSrcDir, writePluginVersionMarker, getPackageVersion, computeInstalledFileHashes } from '../lib/plugin-assets.js';
13
13
  import { printNextSteps } from '../lib/next-steps.js';
14
14
  const CONDUCTOR_MCP_ENTRY = {
15
15
  command: 'conductor',
@@ -239,6 +239,7 @@ Examples:
239
239
  console.log(chalk.green('✓ Updated .gitignore'));
240
240
  const claudeDir = path.join(projectRoot, '.claude');
241
241
  const pluginStatus = installPluginAssets(claudeDir, getAssetSrcDir());
242
+ writePluginVersionMarker(claudeDir, getPackageVersion(), computeInstalledFileHashes(claudeDir));
242
243
  if (pluginStatus === 'installed') {
243
244
  console.log(chalk.green('✓ Installed conductor Claude plugin'));
244
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,eAAO,MAAM,QAAQ,QAAyC,CAAA;AAC9D,eAAO,MAAM,QAAQ,QAAyC,CAAA;AAoB9D,4EAA4E;AAC5E,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CA0CpD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQpD"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,eAAO,MAAM,QAAQ,QAAyC,CAAA;AAC9D,eAAO,MAAM,QAAQ,QAAyC,CAAA;AAoB9D,4EAA4E;AAC5E,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CA4CpD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQpD"}
@@ -4,6 +4,7 @@ import * as path from 'path';
4
4
  import * as os from 'os';
5
5
  import { fileURLToPath } from 'url';
6
6
  import { readConfig } from '../lib/config.js';
7
+ import { refreshInstalledPluginAssets } from '../lib/plugin-assets.js';
7
8
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
9
  const CONDUCTOR_DIR = path.join(os.homedir(), '.conductor');
9
10
  export const PID_FILE = path.join(CONDUCTOR_DIR, 'daemon.pid');
@@ -28,6 +29,7 @@ function tailLog(lines = 5) {
28
29
  }
29
30
  /** Returns true if the daemon started and stayed alive, false otherwise. */
30
31
  export async function startDaemon() {
32
+ refreshInstalledPluginAssets({ log: (message) => console.error(message) });
31
33
  const config = readConfig();
32
34
  if (!config) {
33
35
  console.error('Not authenticated — run conductor login');
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}