Skip to content

Commit e790fad

Browse files
committed
Add official-art authoring path and bump plugin to 26.09.5
1 parent e3a9ee8 commit e790fad

6 files changed

Lines changed: 72 additions & 32 deletions

File tree

‎.claude-plugin/marketplace.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"name": "screenrig",
1010
"source": "./plugins/screenrig",
1111
"description": "Operate ScreenRig screens, media, and playlists with the bundled CLI.",
12-
"version": "26.09.3",
12+
"version": "26.09.5",
1313
"author": {
1414
"name": "ScreenRig"
1515
},

‎AGENTS.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ for this plugin's bundled launcher in an agent workflow.
1919
tarball you packed.
2020
- Distributed plugin versions are CalVer `YY.MM.SERIAL` (UTC). Tags are
2121
`vYY.MM.N`. Committed `.claude-plugin/marketplace.json` is the published
22-
CalVer (currently `26.09.3`); CI stamps generated `plugin.json` in the
22+
CalVer (currently `26.09.5`); CI stamps generated `plugin.json` in the
2323
distributing artifact. Local and pull-request trees use `YY.MM.0-dev`.
2424
Plugin CI packs `screenrig/cli` `main` and, when that HEAD is tagged
2525
`vYY.MM.N`, applies the same stamp so the tarball hash is stable.

‎plugins/screenrig/.claude-plugin/plugin.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "screenrig",
3-
"version": "26.09.3",
3+
"version": "26.09.5",
44
"description": "Operate ScreenRig screens, media, playlists, and applications with the bundled CLI.",
55
"author": {
66
"name": "ScreenRig"

‎plugins/screenrig/.codex-plugin/plugin.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "screenrig",
3-
"version": "26.09.3",
3+
"version": "26.09.5",
44
"description": "Operate ScreenRig screens, media, playlists, and applications with the bundled CLI.",
55
"author": {
66
"name": "ScreenRig"

‎plugins/screenrig/skills/screenrig/SKILL.md‎

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -217,21 +217,34 @@ Generating an atmosphere plate and composing type onto it throws away the
217217
image-model layout. Do not do that.
218218

219219
Compose and generate are not interchangeable layout tools. Pick generate
220-
when the page must look presentable.
220+
when the page must look presentable and you do not have official art to preserve.
221221

222222
How to put content on a playlist page. Choose by what the page is. Do not
223223
generate an atmosphere plate and compose type onto it. Do not compose a
224224
presentable poster as named regions + cards.
225225

226-
1. **You already have the image or video.** `media upload` and place
227-
`med_…`. No compose. No generate.
226+
1. **You already have the image or video.** Official venue logos, official
227+
show key art, and other brand photography count: fetch the PNG/JPEG from
228+
the brand, `media upload`, and place `med_…`. No compose. No generate.
228229

229230
```bash
230231
screenrig --json media upload ./lobby.jpg --tag LobbyPhoto
231232
screenrig --json media list --tag LobbyPhoto --primitive image
232233
```
233234

234-
2. **Anything presentable** — posters, announcements, restaurant menus,
235+
2. **Official assets that are not yet the page.** A studio poster, venue
236+
mark, or show key art plus live copy (times, prices, ratings) that must
237+
sit with it. Generate cannot take those files in and will invent a
238+
lookalike. Compose cannot do a poster case: `logo` is max 200×100,
239+
regions are halves and thirds, and times become body copy. Raster a
240+
finished still locally at canvas size — HTML in a 1920×1080 viewport
241+
is fine — then `media upload` as in path 1. HTML is not a playlist
242+
primitive. The still is the page. Lock the chrome in one template so
243+
a loop of pages matches; only the poster and the live fields change.
244+
This is not generating an atmosphere plate and overlaying type: the
245+
picture is source art you must preserve, flattened into one upload.
246+
247+
3. **Anything presentable** — posters, announcements, restaurant menus,
235248
event art, product stills, public-facing rich static pages. `media
236249
generate` as the **whole page**. Put every fact and all copy in the
237250
prompt so the image model typesets it. ScreenRig generate is the default. Own-gen-then-upload remains valid
@@ -262,7 +275,7 @@ the prompt. Place the returned `med_…` on the playlist as one full-page
262275
`image`. The POST stores a lossy WebP in the account media store; the CLI does
263276
not re-upload. Fetch content only to inspect.
264277

265-
3. **Slide-deck-like experiences** — title/body/table slides, internal
278+
4. **Slide-deck-like experiences** — title/body/table slides, internal
266279
decks, measured type that must stay editable as compose JSON. Local
267280
unbilled `compose render`.
268281

@@ -281,7 +294,7 @@ write two playlist primitives directly, with side-by-side `rect` values. Use
281294
compose only when that mixed page also needs deck-like copy or chrome painted
282295
into a still.
283296

284-
4. **Live objects** — a playing video, iframe, or webapp as the page (or as
297+
5. **Live objects** — a playing video, iframe, or webapp as the page (or as
285298
playlist primitives). Write playlist primitives. Upload the video if you
286299
have it. Do not local-render stills merely to attach `enter` / `motion`.
287300
Animation is not a reason to compose.
@@ -358,10 +371,17 @@ A strong prompt names, in this order:
358371
when the target screen is landscape; use "portrait 9:16 poster artwork"
359372
only when the target screen is portrait. Never write "television", "screen", or
360373
"display" here; that is the phrasing that makes the model draw one.
361-
- **What to exclude**: "no photographs", "no people", "no logos", "no
362-
watermark", "no placeholder text", and the device exclusion above: no
363-
television, monitor, display, screen, kiosk, bezel, frame, wall, mount, or
364-
mockup, artwork filling the image edge to edge.
374+
- **What to exclude**: "no watermark", "no placeholder text", "no other text",
375+
and the device exclusion above. Do not put "no photographs", "no people",
376+
or "no logos" on every prompt. Those belong only when this artefact is
377+
non-photographic illustration. Never invent a trademark or a lookalike
378+
mark: if the brief is a real brand, obtain the official PNG and composite
379+
or upload it (path 1) or raster it with live copy (path 2), or typeset
380+
the name in the chosen type and omit the mark. Photographs and people belong when the style is photographic
381+
and you have a source you may use (a user photo, official key art, or an
382+
authorized local scratch demo of official photography); otherwise prefer
383+
illustration. Do not invent a celebrity likeness. Keep the closer short
384+
so the exclusion list cannot typeset as a visible caption.
365385

366386
Write for a viewer at distance: few words, large type, one clear hierarchy.
367387
A menu board carrying twelve dishes with descriptions and prices is the dense
@@ -373,13 +393,13 @@ belongs in compose or a web application.
373393
Quick-service menu board, `16:9`, `high` because the text is dense:
374394

375395
```bash
376-
screenrig --json media generate --aspect-ratio 16:9 --quality high --tag BurgerBoard --prompt "Landscape 16:9 menu board artwork for Example Burger Counter, a quick-service burger stand. Full bleed, artwork only. Style: bold retro American diner signage, flat vector shapes, thick outlines, slight halftone texture. Palette: mustard yellow #E8B324 background, ketchup red #C8281E accents, cream #FFF6E0 type, charcoal #1E1E1E outlines. Layout: restaurant name as a large arched headline top centre, then three columns. Column one, BURGERS: Classic Smash, double patty, American cheese, pickles, \$9; Bacon Deluxe, smoked bacon, cheddar, onion jam, \$11; Garden Stack, grilled halloumi, roasted pepper, herb mayo, \$10. Column two, SIDES: Skin-on Fries \$4; Onion Rings \$5; Slaw \$3. Column three, DRINKS: Vanilla Shake \$6; Root Beer Float \$5; Lemonade \$3. Footer line: Order at the counter, we call your number. Typography: condensed heavy sans for headings, clean rounded sans for items, prices right-aligned and bold. No photographs, no people, no logos, no other text. Do not draw a television, screen, frame, bezel, border, or mounting: the artwork fills the whole image, edge to edge."
396+
screenrig --json media generate --aspect-ratio 16:9 --quality high --tag BurgerBoard --prompt "Landscape 16:9 menu board artwork for Example Burger Counter, a quick-service burger stand. Full bleed, artwork only. Style: bold retro American diner signage, flat vector shapes, thick outlines, slight halftone texture. Palette: mustard yellow #E8B324 background, ketchup red #C8281E accents, cream #FFF6E0 type, charcoal #1E1E1E outlines. Layout: restaurant name as a large arched headline top centre, then three columns. Column one, BURGERS: Classic Smash, double patty, American cheese, pickles, \$9; Bacon Deluxe, smoked bacon, cheddar, onion jam, \$11; Garden Stack, grilled halloumi, roasted pepper, herb mayo, \$10. Column two, SIDES: Skin-on Fries \$4; Onion Rings \$5; Slaw \$3. Column three, DRINKS: Vanilla Shake \$6; Root Beer Float \$5; Lemonade \$3. Footer line: Order at the counter, we call your number. Typography: condensed heavy sans for headings, clean rounded sans for items, prices right-aligned and bold. Flat vector only, no photo, no watermark, no other text. Do not draw a television, screen, frame, bezel, border, or mounting: the artwork fills the whole image, edge to edge."
377397
```
378398

379399
Store event poster for a landscape screen, `16:9`, `medium`:
380400

381401
```bash
382-
screenrig --json media generate --aspect-ratio 16:9 --quality medium --tag AuthorNight --prompt "Landscape 16:9 event poster artwork for fictional Example Books, an independent bookshop. Full bleed, artwork only. Style: two-colour risograph print, grainy ink, slightly off-register overlap, generous margins, mid-century book-jacket feel. Palette: paper white #F4EFE6, teal ink #1B6F79, coral ink #E4633C. Copy, exactly this and nothing else: headline 'Author Night'; subhead 'Guest Author reads from Sample Title'; date line 'Thursday 24 September, 7 pm'; line 'Free entry, signed copies available'; footer 'fictional Example Books, Main Hall'. Illustration: one stylised open book with waves rising from its pages, placed behind the headline. Typography: tall geometric display type for the headline, small caps for the date, humanist serif for the rest. No photographs, no people, no logos, no other text. Do not draw a television, screen, frame, bezel, border, or mounting: the artwork fills the whole image, edge to edge."
402+
screenrig --json media generate --aspect-ratio 16:9 --quality medium --tag AuthorNight --prompt "Landscape 16:9 event poster artwork for fictional Example Books, an independent bookshop. Full bleed, artwork only. Style: two-colour risograph print, grainy ink, slightly off-register overlap, generous margins, mid-century book-jacket feel. Palette: paper white #F4EFE6, teal ink #1B6F79, coral ink #E4633C. Copy, exactly this and nothing else: headline 'Author Night'; subhead 'Guest Author reads from Sample Title'; date line 'Thursday 24 September, 7 pm'; line 'Free entry, signed copies available'; footer 'fictional Example Books, Main Hall'. Illustration: one stylised open book with waves rising from its pages, placed behind the headline. Typography: tall geometric display type for the headline, small caps for the date, humanist serif for the rest. Risograph illustration only, no photo, no watermark, no other text. Do not draw a television, screen, frame, bezel, border, or mounting: the artwork fills the whole image, edge to edge."
383403
```
384404

385405
The same brief in a different venue asks for a different style: the same
@@ -475,7 +495,7 @@ file is overwritten. The envelope is `media_id`, `path`, `bytes`, `sha256`,
475495
`width` / `height`. It never carries pixels.
476496

477497
Downloading also lets a generated still serve as a region `image` inside a
478-
`compose render` spec for the exception cases in step 3, for example a
498+
`compose render` spec for the exception cases in step 4, for example a
479499
`low`-quality generated background behind a live video hole. That is compose
480500
using a generated picture, not text layered over a generated poster.
481501

@@ -686,7 +706,7 @@ whose permissions are too broad.
686706

687707
## Local compose
688708

689-
Compose is authoring path 3: slide-deck-like experiences — title/body/table
709+
Compose is authoring path 4: slide-deck-like experiences — title/body/table
690710
slides, internal decks, measured type that must stay editable as compose
691711
JSON. It is local and unbilled. Presentable posters, menus, event art, and
692712
other public-facing rich static pages are generated finished stills, not

0 commit comments

Comments
 (0)