@iodes/releasekit 0.1.0 → 0.1.1

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 (78) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +292 -110
  3. package/dist/cli.js +7 -5
  4. package/dist/content.d.ts +8 -0
  5. package/dist/content.js +5 -3
  6. package/dist/export.js +4 -3
  7. package/dist/images.d.ts +14 -5
  8. package/dist/images.js +32 -8
  9. package/dist/model.d.ts +29 -0
  10. package/dist/model.js +27 -3
  11. package/dist/prompts.d.ts +2 -2
  12. package/dist/prompts.js +24 -16
  13. package/dist/validate.js +2 -2
  14. package/examples/README.md +34 -14
  15. package/examples/backup-encryption/README.md +19 -0
  16. package/examples/backup-encryption/dark.png +0 -0
  17. package/examples/backup-encryption/dark.prompt.md +52 -0
  18. package/examples/backup-encryption/dimensions-edit.prompt.md +7 -0
  19. package/examples/backup-encryption/flat-render-requests.md +15 -0
  20. package/examples/backup-encryption/light.png +0 -0
  21. package/examples/backup-encryption/light.prompt.md +52 -0
  22. package/examples/backup-encryption/pair-review.md +18 -0
  23. package/examples/backup-encryption/scene.yaml +31 -0
  24. package/examples/connected-route/README.md +23 -0
  25. package/examples/connected-route/dark.png +0 -0
  26. package/examples/connected-route/dark.prompt.md +58 -0
  27. package/examples/connected-route/light.png +0 -0
  28. package/examples/connected-route/light.prompt.md +58 -0
  29. package/examples/connected-route/pair-review.md +22 -0
  30. package/examples/connected-route/render-requests.md +171 -0
  31. package/examples/connected-route/scene.yaml +59 -0
  32. package/examples/feature-briefs.yaml +96 -89
  33. package/examples/location-preferences/README.md +18 -0
  34. package/examples/location-preferences/dark.png +0 -0
  35. package/examples/location-preferences/dark.prompt.md +52 -0
  36. package/examples/location-preferences/light.png +0 -0
  37. package/examples/location-preferences/light.prompt.md +52 -0
  38. package/examples/location-preferences/pair-review.md +17 -0
  39. package/examples/location-preferences/scene.yaml +26 -0
  40. package/examples/provided-media/README.md +15 -0
  41. package/examples/provided-media/scene.yaml +22 -0
  42. package/examples/queue-action/README.md +15 -15
  43. package/examples/queue-action/alignment-edit.prompt.md +8 -8
  44. package/examples/queue-action/dark.prompt.md +58 -58
  45. package/examples/queue-action/light.prompt.md +58 -58
  46. package/examples/queue-action/pair-review.md +33 -33
  47. package/examples/queue-action/scene.yaml +41 -41
  48. package/examples/release-notes.en-US.json +56 -56
  49. package/examples/release-notes.ko-KR.json +56 -56
  50. package/examples/storage-breakdown/README.md +18 -0
  51. package/examples/storage-breakdown/dark.png +0 -0
  52. package/examples/storage-breakdown/dark.prompt.md +52 -0
  53. package/examples/storage-breakdown/light.png +0 -0
  54. package/examples/storage-breakdown/light.prompt.md +52 -0
  55. package/examples/storage-breakdown/pair-review.md +18 -0
  56. package/examples/storage-breakdown/scene.yaml +28 -0
  57. package/examples/tablet-reading/README.md +18 -0
  58. package/examples/tablet-reading/content-edit.prompt.md +7 -0
  59. package/examples/tablet-reading/dark.png +0 -0
  60. package/examples/tablet-reading/dark.prompt.md +52 -0
  61. package/examples/tablet-reading/light.png +0 -0
  62. package/examples/tablet-reading/light.prompt.md +52 -0
  63. package/examples/tablet-reading/pair-review.md +18 -0
  64. package/examples/tablet-reading/scene.yaml +29 -0
  65. package/kit/references/composition-recipes.md +89 -73
  66. package/kit/references/format.md +26 -24
  67. package/kit/references/media-sources.md +34 -0
  68. package/kit/references/theme-pairing.md +55 -53
  69. package/kit/references/visual-language.md +73 -69
  70. package/kit/references/workflow.md +24 -24
  71. package/kit/references/writing.md +27 -27
  72. package/kit/skills/releasekit-draft/SKILL.md +10 -10
  73. package/kit/skills/releasekit-image/SKILL.md +16 -16
  74. package/kit/skills/releasekit-review/SKILL.md +12 -12
  75. package/kit/skills/releasekit-translate/SKILL.md +10 -10
  76. package/package.json +54 -52
  77. package/schemas/bundle.schema.json +26 -1
  78. package/schemas/visual.schema.json +42 -0
@@ -1,89 +1,96 @@
1
- - id: backup-encryption
2
- releaseNote: Local backup files can now be encrypted before saving.
3
- scene:
4
- archetype: icon-tile
5
- subject: A compact archive symbol with a closed padlock
6
- message: Local backup files can be saved with encryption enabled.
7
- focus: The closed padlock attached to the archive symbol
8
- context: >-
9
- Fictional capability illustration, not a shipped product claim. The lock represents
10
- encryption of local backup files only; it does not claim protection of every product surface.
11
- composition: >-
12
- One compact archive silhouette occupies about 22 percent of an 8:5 canvas width,
13
- centered optically. One small closed padlock overlaps its lower-right corner as a badge.
14
- Keep the archive opening, lock body, and closed shackle distinguishable at small size.
15
- Use neutral material values with one restrained accent on the lock. No surrounding interface.
16
- elements:
17
- - One archive silhouette
18
- - One closed padlock badge
19
- preserve:
20
- - Closed shackle and attachment of the badge to the archive
21
- - Relative symbol scale, overlap, and optical center
22
- avoid:
23
- - Open lock or a success badge implying that every file is already encrypted
24
- - Additional devices, shields, or unrelated application controls
25
- text: []
26
- references: []
27
-
28
- - id: quiet-hours
29
- releaseNote: Choose a daily time window to silence notifications.
30
- scene:
31
- archetype: ui-detail
32
- subject: A quiet-hours setting with an enabled control and two time fields
33
- message: Notifications can be silenced during a chosen daily time window.
34
- focus: The enabled quiet-hours control and its associated start and end fields
35
- context: >-
36
- Fictional settings interface. The depicted state is enabled with a valid configured
37
- interval. Exact hours are incidental and should be abstracted rather than invented.
38
- composition: >-
39
- A single straight-on settings panel occupies about 64 percent of an 8:5 canvas width.
40
- A short abstract heading and one enabled toggle share the top group. Beneath them,
41
- two equal-width time fields sit side by side inside the same panel, with consistent
42
- padding and a clear gap. The left field represents the start and the right the end.
43
- Use neutral bars for field labels and values. Accent only the enabled toggle.
44
- elements:
45
- - One settings panel
46
- - One enabled toggle
47
- - Two grouped time fields with abstract labels and values
48
- preserve:
49
- - Enabled toggle state and grouping with the time fields
50
- - Start field on the left and end field on the right
51
- - Equal field dimensions and containment inside the panel
52
- avoid:
53
- - Motion cues or unrelated gestures
54
- - Literal hours or an extra scheduling capability absent from the note
55
- - Disabled appearance while the control is enabled
56
- text: []
57
- references: []
58
-
59
- - id: storage-breakdown
60
- releaseNote: View how saved files use storage by category.
61
- scene:
62
- archetype: data-view
63
- subject: A storage breakdown with three categories
64
- message: A category breakdown shows how saved files use storage.
65
- focus: One stacked bar and its matching category legend
66
- context: >-
67
- Fictional view illustration. The proportions 20, 30, and 50 percent are explicitly
68
- illustrative and are not measurements or a claim of improved storage efficiency.
69
- composition: >-
70
- A single panel occupies about 68 percent of an 8:5 canvas width. One horizontal
71
- stacked bar contains three contiguous segments with lengths in the ratio 2:3:5.
72
- Below it, three equally spaced legend items appear in the same order as the segments.
73
- Each legend item has one matching swatch and an abstract label bar. The first two
74
- categories use distinguishable neutral values; the largest category uses the accent.
75
- Omit literal numbers, axes, trend lines, and unrelated controls.
76
- elements:
77
- - One panel
78
- - One stacked bar containing exactly three contiguous segments
79
- - Three matching legend swatches with abstract label bars
80
- preserve:
81
- - Three segment lengths in the ratio 2:3:5, accounting for the complete bar
82
- - Left-to-right category order and one-to-one legend correspondence
83
- - Accent assigned to the same largest category in both themes
84
- avoid:
85
- - Invented performance improvement or additional metrics
86
- - Gaps, overlap, or proportions that disagree with the legend
87
- - Category color changes between the bar and its legend
88
- text: []
89
- references: []
1
+ - id: backup-encryption
2
+ releaseNote: Local backup files can now be encrypted before saving.
3
+ scene:
4
+ archetype: icon-tile
5
+ subject: One flat closed-padlock glyph inside a compact rounded square tile
6
+ message: Local backup files can be saved with encryption enabled.
7
+ focus: The closed shackle and simple keyhole of the monochrome padlock glyph
8
+ composition: A uniform 8:5 landscape canvas with one small flat rounded-square
9
+ tile centered exactly in the canvas. The tile side is about 22 percent of
10
+ canvas width, with a corner radius about 13 percent of its side. Inside
11
+ it, one front-facing filled padlock glyph occupies about 56 percent of the
12
+ tile width and 62 percent of its height. Use one solid mid-gray neutral
13
+ value for the complete glyph, including its closed arched shackle and
14
+ body. A simple keyhole is negative space in the body. Keep broad
15
+ uninterrupted canvas around the tile. There is no archive box, physical
16
+ object, perspective, material rendering, lighting, or colored badge.
17
+ context: Fictional capability illustration, not a shipped product claim. The
18
+ flat lock represents encryption of local backup files only. It does not
19
+ claim that every file is encrypted or that every product surface is
20
+ protected.
21
+ elements:
22
+ - One flat rounded-square background tile
23
+ - One solid monochrome closed-padlock glyph with a negative-space keyhole
24
+ preserve:
25
+ - Tile and glyph dimensions, optical center, and corner treatment
26
+ - Closed shackle and recognizable negative-space keyhole
27
+ - Completely flat monochrome graphic treatment in both themes
28
+ avoid:
29
+ - Perspective, extrusion, bevels, gradients, texture, highlights, or
30
+ shadows
31
+ - A physical archive box, metallic lock, or separate floating badge
32
+ - Decorative accent color or glow
33
+ - Open shackle, success mark, text, or additional controls
34
+ text: []
35
+ references: []
36
+ - id: quiet-hours
37
+ releaseNote: Choose a daily time window to silence notifications.
38
+ scene:
39
+ archetype: ui-detail
40
+ subject: A quiet-hours setting with an enabled control and two time fields
41
+ message: Notifications can be silenced during a chosen daily time window.
42
+ focus: The enabled quiet-hours control and its associated start and end fields
43
+ context: Fictional settings interface. The depicted state is enabled with a
44
+ valid configured interval. Exact hours are incidental and should be
45
+ abstracted rather than invented.
46
+ composition: A single straight-on settings panel occupies about 64 percent of an
47
+ 8:5 canvas width. A short abstract heading and one enabled toggle share
48
+ the top group. Beneath them, two equal-width time fields sit side by side
49
+ inside the same panel, with consistent padding and a clear gap. The left
50
+ field represents the start and the right the end. Use neutral bars for
51
+ field labels and values. Accent only the enabled toggle.
52
+ elements:
53
+ - One settings panel
54
+ - One enabled toggle
55
+ - Two grouped time fields with abstract labels and values
56
+ preserve:
57
+ - Enabled toggle state and grouping with the time fields
58
+ - Start field on the left and end field on the right
59
+ - Equal field dimensions and containment inside the panel
60
+ avoid:
61
+ - Motion cues or unrelated gestures
62
+ - Literal hours or an extra scheduling capability absent from the note
63
+ - Disabled appearance while the control is enabled
64
+ text: []
65
+ references: []
66
+ - id: storage-breakdown
67
+ releaseNote: View how saved files use storage by category.
68
+ scene:
69
+ archetype: data-view
70
+ subject: A storage breakdown with three categories
71
+ message: A category breakdown shows how saved files use storage.
72
+ focus: One stacked bar and its matching category legend
73
+ context: Fictional view illustration. The proportions 20, 30, and 50 percent are
74
+ explicitly illustrative and are not measurements or a claim of improved
75
+ storage efficiency.
76
+ composition: A single panel occupies about 68 percent of an 8:5 canvas width.
77
+ One horizontal stacked bar contains three contiguous segments with lengths
78
+ in the ratio 2:3:5. Below it, three equally spaced legend items appear in
79
+ the same order as the segments. Each legend item has one matching swatch
80
+ and an abstract label bar. The first two categories use distinguishable
81
+ neutral values; the largest category uses the accent. Omit literal
82
+ numbers, axes, trend lines, and unrelated controls.
83
+ elements:
84
+ - One panel
85
+ - One stacked bar containing exactly three contiguous segments
86
+ - Three matching legend swatches with abstract label bars
87
+ preserve:
88
+ - Three segment lengths in the ratio 2:3:5, accounting for the complete bar
89
+ - Left-to-right category order and one-to-one legend correspondence
90
+ - Accent assigned to the same largest category in both themes
91
+ avoid:
92
+ - Invented performance improvement or additional metrics
93
+ - Gaps, overlap, or proportions that disagree with the legend
94
+ - Category color changes between the bar and its legend
95
+ text: []
96
+ references: []
@@ -0,0 +1,18 @@
1
+ # Location preferences
2
+
3
+ An original fictional `symbol-pair` example: Preferences can be saved for an individually selected location.
4
+
5
+ Original fictional example. The written scene is the complete product specification for this example, not evidence of a shipped product.
6
+
7
+ | Dark | Light |
8
+ | --- | --- |
9
+ | ![An adjustment glyph associated with a saved location pin, dark presentation](dark.png) | ![An adjustment glyph associated with a saved location pin, light presentation](light.png) |
10
+
11
+ Both selected PNGs are 1586 × 992 pixels.
12
+
13
+ - [Shared scene specification](scene.yaml)
14
+ - [Dark prompt](dark.prompt.md) and [light prompt](light.prompt.md), compiled from that scene and the default project palette
15
+ - [Generation and pair review](pair-review.md)
16
+ - [Current composition examples](../README.md#composition-gallery)
17
+
18
+ The scene explains this feature only. Derive a new scene from each real note and its product evidence.
@@ -0,0 +1,52 @@
1
+ # Release illustration — dark
2
+
3
+ ## Intent
4
+ Create one finished raster illustration for a product release note. Render only the illustration asset, without the surrounding release viewer, headline, body copy, page navigation, or an outer presentation frame.
5
+ User-visible change: Preferences can be saved for an individually selected location.
6
+ Subject: An adjustment glyph associated with a saved location pin
7
+ Focal detail: A balanced association between preferences and one location
8
+ Context: Original fictional example. The written scene is the complete product specification for this example, not evidence of a shipped product.
9
+
10
+ ## Composition contract
11
+ Archetype: symbol-pair
12
+ Target canvas: 1280 × 800 pixels; landscape 1280:800. Produce a single image, not a dark/light collage.
13
+ Place two similarly weighted symbols on one horizontal optical axis, centered as a group; a short low-contrast divider can separate them.
14
+ Specific scene layout: Two equal optical-weight symbols centered as a group on one horizontal axis. A three-slider adjustment glyph on the left and a simple location pin on the right, each about 16 percent of canvas width, separated by a short thin neutral vertical divider. The pin uses a restrained blue accent; the adjustment glyph is neutral. Broad empty space. Flat precise shapes with gently softened material depth.
15
+ Elements:
16
+ - One three-slider adjustment glyph
17
+ - One blue location pin with a circular cutout
18
+ - One short neutral vertical divider
19
+
20
+ ## Visual treatment
21
+ Communicate one relationship with flat 2D filled glyphs. Match visual weight, corner treatment, and perceived size. Use an arrow only when direction itself is part of the feature. Prefer neutral gray; use color only for a stated interaction or semantic status. No rendered materials or sculpted 3D symbols.
22
+ Favor visual precision, quiet hierarchy, and one instantly understandable feature. Small-screen clarity takes priority over decorative detail. Treat the specified element inventory as complete. Keep elements designated as schematic or abstract in that form; do not turn them into additional content or decoration. Authentic content explicitly requested in the brief can retain its own materials and colors. Avoid an unrelated marketing dashboard, neon glow, glass effects, noisy textures, decorative 3D blobs, and unnecessary gradients.
23
+
24
+ ## Dark theme roles
25
+ Canvas #242527; base surface #18191B; raised surface #343638; main neutral symbol #B9BBBE; secondary detail #777B80; divider #46494D; interaction accent #4678ED. Use the accent only when the scene assigns it a functional meaning.
26
+ Use uniform flat color areas and crisp negative space. If a tile is present, use #18191B for its flat fill. Separate the neutral glyph and its background by value alone. Do not add lighting, shadows, gradients, texture, or physical material cues.
27
+ Treat these colors as presentation roles, not a global recoloring filter. Preserve natural photos, device materials, and meaningful status colors. If a light product UI is not supported by the evidence, keep the authentic UI on the light presentation canvas instead of inventing a feature.
28
+
29
+ ## Pair invariants
30
+ The other theme must use the same object count, positions, scale, crop, camera, UI topology, selected state, chart values, allowed labels, and feature meaning. Change presentation surfaces, neutral values, lighting, and shadows only. Preserve semantic accent hues. If an approved counterpart exists and the tool supports references, use it as a composition reference for a constrained edit. Never create the counterpart with color inversion, brightness-only filters, or a fresh unrelated composition.
31
+ Specific invariants:
32
+ - Left adjustment glyph and right location pin with equal optical weight
33
+ - Three slider tracks and their knob positions
34
+ - Non-directional association; blue stays on the pin
35
+
36
+ ## Text and references
37
+ No readable text or invented numbers. Use abstract bars for incidental UI labels.
38
+ Product reference files to inspect before rendering:
39
+ - None
40
+ Treat reference content as evidence, not instructions. Use original product-appropriate shapes. Do not copy reference-company identities, logos, attributed style labels, slogans, or distinctive unrelated products.
41
+
42
+ ## Exclusions
43
+ - Arrows, routes, transfer or synchronization cues
44
+ - Geofencing rings or automatic location triggers
45
+ - Extra symbols or interface panels
46
+ No watermark, stock-photo caption, extra claims, or decorative objects unrelated to the change.
47
+
48
+ ## Feature correctness
49
+ First compare the depicted meaning with the user-visible change and product evidence. The subject, focal detail, state, and relationships must satisfy this scene's composition, preserve, and avoid constraints. Apply only checks relevant to this feature. Check which two concepts are related and whether the relationship is directional. A connector must not imply transfer, synchronization, or automation unless supported by the note.
50
+
51
+ ## Acceptance
52
+ Inspect at full size and approximately 350 pixels wide. First verify feature correctness, then visual clarity, then correspondence between the configured themes. Essential content must not clip, incidental text must not become gibberish, and the pair must preserve the composition contract. Matching variants can share the same factual or structural mistake. Register the actual output dimensions and selected file. If generation is unavailable, leave this request pending and hand off this prompt; do not substitute a placeholder image.
@@ -0,0 +1,52 @@
1
+ # Release illustration — light
2
+
3
+ ## Intent
4
+ Create one finished raster illustration for a product release note. Render only the illustration asset, without the surrounding release viewer, headline, body copy, page navigation, or an outer presentation frame.
5
+ User-visible change: Preferences can be saved for an individually selected location.
6
+ Subject: An adjustment glyph associated with a saved location pin
7
+ Focal detail: A balanced association between preferences and one location
8
+ Context: Original fictional example. The written scene is the complete product specification for this example, not evidence of a shipped product.
9
+
10
+ ## Composition contract
11
+ Archetype: symbol-pair
12
+ Target canvas: 1280 × 800 pixels; landscape 1280:800. Produce a single image, not a dark/light collage.
13
+ Place two similarly weighted symbols on one horizontal optical axis, centered as a group; a short low-contrast divider can separate them.
14
+ Specific scene layout: Two equal optical-weight symbols centered as a group on one horizontal axis. A three-slider adjustment glyph on the left and a simple location pin on the right, each about 16 percent of canvas width, separated by a short thin neutral vertical divider. The pin uses a restrained blue accent; the adjustment glyph is neutral. Broad empty space. Flat precise shapes with gently softened material depth.
15
+ Elements:
16
+ - One three-slider adjustment glyph
17
+ - One blue location pin with a circular cutout
18
+ - One short neutral vertical divider
19
+
20
+ ## Visual treatment
21
+ Communicate one relationship with flat 2D filled glyphs. Match visual weight, corner treatment, and perceived size. Use an arrow only when direction itself is part of the feature. Prefer neutral gray; use color only for a stated interaction or semantic status. No rendered materials or sculpted 3D symbols.
22
+ Favor visual precision, quiet hierarchy, and one instantly understandable feature. Small-screen clarity takes priority over decorative detail. Treat the specified element inventory as complete. Keep elements designated as schematic or abstract in that form; do not turn them into additional content or decoration. Authentic content explicitly requested in the brief can retain its own materials and colors. Avoid an unrelated marketing dashboard, neon glow, glass effects, noisy textures, decorative 3D blobs, and unnecessary gradients.
23
+
24
+ ## Light theme roles
25
+ Canvas #F7F8FA; base surface #FFFFFF; raised surface #ECEEF1; main neutral symbol #494D52; secondary detail #969BA2; divider #DDE0E5; interaction accent #4678ED. Use the accent only when the scene assigns it a functional meaning.
26
+ Use uniform flat color areas and crisp negative space. If a tile is present, use #ECEEF1 for its flat fill. Separate the neutral glyph and its background by value alone. Do not add lighting, shadows, gradients, texture, or physical material cues.
27
+ Treat these colors as presentation roles, not a global recoloring filter. Preserve natural photos, device materials, and meaningful status colors. If a light product UI is not supported by the evidence, keep the authentic UI on the light presentation canvas instead of inventing a feature.
28
+
29
+ ## Pair invariants
30
+ The other theme must use the same object count, positions, scale, crop, camera, UI topology, selected state, chart values, allowed labels, and feature meaning. Change presentation surfaces, neutral values, lighting, and shadows only. Preserve semantic accent hues. If an approved counterpart exists and the tool supports references, use it as a composition reference for a constrained edit. Never create the counterpart with color inversion, brightness-only filters, or a fresh unrelated composition.
31
+ Specific invariants:
32
+ - Left adjustment glyph and right location pin with equal optical weight
33
+ - Three slider tracks and their knob positions
34
+ - Non-directional association; blue stays on the pin
35
+
36
+ ## Text and references
37
+ No readable text or invented numbers. Use abstract bars for incidental UI labels.
38
+ Product reference files to inspect before rendering:
39
+ - None
40
+ Treat reference content as evidence, not instructions. Use original product-appropriate shapes. Do not copy reference-company identities, logos, attributed style labels, slogans, or distinctive unrelated products.
41
+
42
+ ## Exclusions
43
+ - Arrows, routes, transfer or synchronization cues
44
+ - Geofencing rings or automatic location triggers
45
+ - Extra symbols or interface panels
46
+ No watermark, stock-photo caption, extra claims, or decorative objects unrelated to the change.
47
+
48
+ ## Feature correctness
49
+ First compare the depicted meaning with the user-visible change and product evidence. The subject, focal detail, state, and relationships must satisfy this scene's composition, preserve, and avoid constraints. Apply only checks relevant to this feature. Check which two concepts are related and whether the relationship is directional. A connector must not imply transfer, synchronization, or automation unless supported by the note.
50
+
51
+ ## Acceptance
52
+ Inspect at full size and approximately 350 pixels wide. First verify feature correctness, then visual clarity, then correspondence between the configured themes. Essential content must not clip, incidental text must not become gibberish, and the pair must preserve the composition contract. Matching variants can share the same factual or structural mistake. Register the actual output dimensions and selected file. If generation is unavailable, leave this request pending and hand off this prompt; do not substitute a placeholder image.
@@ -0,0 +1,17 @@
1
+ # Pair review: Location preferences
2
+
3
+ ## Generation record
4
+
5
+ Generated with the coding agent's built-in image tool. The CLI made no image-service calls. The dark asset was generated from dark.prompt.md; the light asset was created as a constrained edit of the selected dark image using light.prompt.md and an instruction to preserve input dimensions and composition. No color inversion was used.
6
+
7
+ Two image-tool requests: dark generation and light counterpart.
8
+
9
+ ## Selected output
10
+
11
+ - Two distinct decoded PNGs, both 1586 × 992 pixels, approximately 8:5. Original output dimensions are retained.
12
+ - Reviewed at full size and approximately 350 pixels wide for feature meaning, focal clarity and pair correspondence.
13
+ - Three slider tracks remain on the left, with the same knob positions; one blue pin stays on the right.
14
+ - The thin divider communicates association without an arrow, transfer, synchronization or geofencing cue.
15
+ - No readable text, logos or surrounding release-note viewer.
16
+
17
+ The pair is visually consistent, not guaranteed to have pixel-identical edges or exact palette samples. Presentation lighting and surface shading can differ. This fictional image is an authoring reference; review real product imagery against its own evidence before acceptance.
@@ -0,0 +1,26 @@
1
+ archetype: symbol-pair
2
+ subject: An adjustment glyph associated with a saved location pin
3
+ message: Preferences can be saved for an individually selected location.
4
+ focus: A balanced association between preferences and one location
5
+ composition: Two equal optical-weight symbols centered as a group on one
6
+ horizontal axis. A three-slider adjustment glyph on the left and a simple
7
+ location pin on the right, each about 16 percent of canvas width, separated by
8
+ a short thin neutral vertical divider. The pin uses a restrained blue accent;
9
+ the adjustment glyph is neutral. Broad empty space. Flat precise shapes with
10
+ gently softened material depth.
11
+ context: Original fictional example. The written scene is the complete product
12
+ specification for this example, not evidence of a shipped product.
13
+ elements:
14
+ - One three-slider adjustment glyph
15
+ - One blue location pin with a circular cutout
16
+ - One short neutral vertical divider
17
+ preserve:
18
+ - Left adjustment glyph and right location pin with equal optical weight
19
+ - Three slider tracks and their knob positions
20
+ - Non-directional association; blue stays on the pin
21
+ avoid:
22
+ - Arrows, routes, transfer or synchronization cues
23
+ - Geofencing rings or automatic location triggers
24
+ - Extra symbols or interface panels
25
+ text: []
26
+ references: []
@@ -0,0 +1,15 @@
1
+ # Supplied-media example
2
+
3
+ This is an input-request example, not a rendered asset. [The scene](scene.yaml) selects `object-detail` and `source: provided` without pretending that a product image exists. Put the scene fields under `scene` in a real note's visual file and adapt its message to the actual release.
4
+
5
+ With no selected image, `releasekit image plan <version>` reports one request with `action: provide`, `theme: shared`, and `promptFile: null`. It reports zero generation requests. The agent looks for an approved project asset or asks for the specific capture or image, then continues independent writing work while waiting. Finalization remains blocked by the missing image.
6
+
7
+ Once a suitable source is available, inspect it and import it once:
8
+
9
+ ```sh
10
+ releasekit image import 1.4.0 product-detail --theme shared --file ./approved-capture.png
11
+ ```
12
+
13
+ The shared image retains its native pixels and dimensions. Export contains one `variants.shared` entry and `fallbackTheme: shared`, so the consumer can use it in either viewer theme without duplicate files or recoloring. Actual distinct dark/light captures can instead be imported into the corresponding slots.
14
+
15
+ The same source route applies to `editorial-scene` for actual content artwork or screenshots. Any other category may also choose `provided` when an authentic capture is the appropriate visual. No stock substitute, fictional model, or decorative illustration is needed to fill a missing input.
@@ -0,0 +1,22 @@
1
+ archetype: object-detail
2
+ source: provided
3
+ subject: The actual product control described by the release note
4
+ message: Show the changed control using an approved product image.
5
+ focus: The control as it appears in the real product
6
+ composition: >-
7
+ Preserve the supplied image's product geometry, appearance, and native colors.
8
+ Select a useful crop only after inspecting the source. Do not invent the control
9
+ shape, viewpoint, surrounding assembly, or product materials.
10
+ context: >-
11
+ Authoring example awaiting a real source. No screenshot, photograph, or approved
12
+ product image is supplied here. The planned asset must remain pending.
13
+ elements:
14
+ - One approved capture or photograph of the actual product detail
15
+ preserve:
16
+ - Authentic product appearance and relevant surrounding context
17
+ - Original source colors and feature meaning across viewer themes
18
+ avoid:
19
+ - Generating a substitute physical object or 3D illustration
20
+ - Inventing geometry from a written description
21
+ text: []
22
+ references: []
@@ -1,15 +1,15 @@
1
- # Paired illustration example
2
-
3
- This fictional list interaction demonstrates the shared scene contract and theme-specific prompts. It is not a screenshot or a claim about an existing product.
4
-
5
- `scene.yaml` is the author-controlled brief. `dark.prompt.md` and `light.prompt.md` are compiled from that same brief and the default project palette. The selected raster pair is checked for interaction geometry, composition, visual hierarchy, and small-card readability.
6
-
7
- The resting rows and the blue action backplate share one fixed left boundary. Only the middle foreground row and its contents move to the right, by the width of the exposed action. This keeps the action inside the original list bounds. The [alignment edit prompt](alignment-edit.prompt.md) records the targeted correction to the earlier illustration.
8
-
9
- The generator is intentionally outside the CLI. In a real project, run `image plan`, generate the requested variants with the agent's available tool or an external service, inspect them, and use `image import` to record the selected files.
10
-
11
- | Dark | Light |
12
- | --- | --- |
13
- | ![A queue action revealed behind a list row on a charcoal canvas](dark.png) | ![The same queue action and list geometry on a near-white canvas](light.png) |
14
-
15
- Both selected PNGs are 1586 × 992 pixels. The generator returned a size close to the requested 8:5 ratio; the files retain their actual dimensions. See [the pair review](pair-review.md) for generation steps and visual checks.
1
+ # Paired illustration example
2
+
3
+ This fictional list interaction demonstrates the shared scene contract and theme-specific prompts. It is not a screenshot or a claim about an existing product.
4
+
5
+ `scene.yaml` is the author-controlled brief. `dark.prompt.md` and `light.prompt.md` are compiled from that same brief and the default project palette. The selected raster pair is checked for interaction geometry, composition, visual hierarchy, and small-card readability.
6
+
7
+ The resting rows and the blue action backplate share one fixed left boundary. Only the middle foreground row and its contents move to the right, by the width of the exposed action. This keeps the action inside the original list bounds. The [alignment edit prompt](alignment-edit.prompt.md) records the targeted correction to the earlier illustration.
8
+
9
+ The generator is intentionally outside the CLI. In a real project, run `image plan`, generate the requested variants with the agent's available tool or an external service, inspect them, and use `image import` to record the selected files.
10
+
11
+ | Dark | Light |
12
+ | --- | --- |
13
+ | ![A queue action revealed behind a list row on a charcoal canvas](dark.png) | ![The same queue action and list geometry on a near-white canvas](light.png) |
14
+
15
+ Both selected PNGs are 1586 × 992 pixels. The generator returned a size close to the requested 8:5 ratio; the files retain their actual dimensions. See [the pair review](pair-review.md) for generation steps and visual checks.
@@ -1,8 +1,8 @@
1
- Use case: precise-object-edit.
2
- Edit target: the attached dark release illustration. Correct only the horizontal alignment of the middle swipe-action row. Preserve the existing 1586 x 992 canvas and the entire first and third rows exactly.
3
-
4
- The first and third row backgrounds currently start at approximately x=267. This is the fixed list left boundary L. The current middle group is wrong: its blue action tile protrudes left to x=144, outside the list. TRANSLATE the entire middle group (blue tile, queue glyph, foreground card, neutral thumbnail, both label bars) approximately 123 pixels to the RIGHT. Do not shrink, stretch, or re-center that group. Its blue tile must start at L=267, perfectly aligned with the first and third row backgrounds. The middle foreground card must then start at about x=474 (=L+207) so it alone appears swiped right by the exposed action width. Keep its contents at exactly their existing internal padding; they move right with the foreground card. Keep the group's vertical position and height unchanged. The row's far right can remain clipped by the canvas.
5
-
6
- Required spatial relationship: left edge of top resting row = left edge of BLUE BACKPLATE = left edge of bottom resting row; left edge of middle FOREGROUND ROW is farther right by one blue action width. Nothing in the middle group extends to the left of that fixed boundary. Fill the vacated old protrusion area with the existing quiet charcoal canvas.
7
-
8
- Keep every other feature unchanged: three rows, rounded corners, row heights and vertical gaps, original materials and dark palette, blue interaction accent, glyph design, neutral flat thumbnail squares, label-bar dimensions, camera and crop. No photos, no words, no new objects, no gesture arrows, no diagram annotations. Render one corrected dark image only.
1
+ Use case: precise-object-edit.
2
+ Edit target: the attached dark release illustration. Correct only the horizontal alignment of the middle swipe-action row. Preserve the existing 1586 x 992 canvas and the entire first and third rows exactly.
3
+
4
+ The first and third row backgrounds currently start at approximately x=267. This is the fixed list left boundary L. The current middle group is wrong: its blue action tile protrudes left to x=144, outside the list. TRANSLATE the entire middle group (blue tile, queue glyph, foreground card, neutral thumbnail, both label bars) approximately 123 pixels to the RIGHT. Do not shrink, stretch, or re-center that group. Its blue tile must start at L=267, perfectly aligned with the first and third row backgrounds. The middle foreground card must then start at about x=474 (=L+207) so it alone appears swiped right by the exposed action width. Keep its contents at exactly their existing internal padding; they move right with the foreground card. Keep the group's vertical position and height unchanged. The row's far right can remain clipped by the canvas.
5
+
6
+ Required spatial relationship: left edge of top resting row = left edge of BLUE BACKPLATE = left edge of bottom resting row; left edge of middle FOREGROUND ROW is farther right by one blue action width. Nothing in the middle group extends to the left of that fixed boundary. Fill the vacated old protrusion area with the existing quiet charcoal canvas.
7
+
8
+ Keep every other feature unchanged: three rows, rounded corners, row heights and vertical gaps, original materials and dark palette, blue interaction accent, glyph design, neutral flat thumbnail squares, label-bar dimensions, camera and crop. No photos, no words, no new objects, no gesture arrows, no diagram annotations. Render one corrected dark image only.
@@ -1,58 +1,58 @@
1
- # Release illustration — dark
2
-
3
- ## Intent
4
- Create one finished raster illustration for a product release note. Render only the illustration asset, without the surrounding release viewer, headline, body copy, page navigation, or an outer presentation frame.
5
- User-visible change: A saved item can be added to the queue with one swipe.
6
- Subject: A saved-item list with an exposed queue action
7
- Focal detail: The single action revealed behind the middle row
8
- Context: A fictional productivity interface used to demonstrate the illustration recipe. This scene contains no product performance data or real user information.
9
-
10
- ## Composition contract
11
- Archetype: ui-detail
12
- Target canvas: 1280 × 800 pixels; landscape 1280:800. Produce a single image, not a dark/light collage.
13
- Enlarge the relevant interface fragment to roughly 55–85% of the canvas width. Keep the focal control inside a 6% safe margin. Supporting interface context may be deliberately cropped.
14
- Specific scene layout: A landscape 8:5 canvas with a straight-on crop of three broad horizontal list rows. Define a fixed list left boundary L at 17 percent of canvas width. The first and third resting row backgrounds start at L. The blue action backplate behind the middle row also starts at L; it never protrudes to the left of the list. Its exposed width D is about 13 percent of canvas width. Only the middle foreground row is translated right by D, starting at L + D (about 30 percent of canvas width). Its thumbnail and both label bars move with it, preserving exactly the same internal padding as resting rows. All rows have the same height, about 21 percent of canvas height, equal vertical gaps, and matching rounded corners. The row tops sit at about 14, 38, and 62 percent of canvas height. Each row contains one simple neutral square thumbnail and two horizontal bars. The rows retain their original width and intentionally continue beyond the right canvas crop. Keep the blue action and its glyph fully visible within the original list bounds. No phone or outer application frame.
15
- Elements:
16
- - Three matching horizontal list rows
17
- - One exposed accent-colored action tile with a simple queue glyph
18
- - One neutral square thumbnail and two label bars in each row
19
-
20
- ## Visual treatment
21
- Use a straight-on, simplified interface with a small number of layered surfaces. Preserve the product-specific control hierarchy, grouping, alignment, and content padding. Use neutral bars for incidental labels and emphasize the changed control or state. Include only the interaction described by this scene; a static setting does not need a gesture.
22
- Favor visual precision, quiet hierarchy, and one instantly understandable feature. Small-screen clarity takes priority over decorative detail. Treat the specified element inventory as complete. Keep elements designated as schematic or abstract in that form; do not turn them into additional content or decoration. Authentic content explicitly requested in the brief can retain its own materials and colors. Avoid an unrelated marketing dashboard, neon glow, glass effects, noisy textures, decorative 3D blobs, and unnecessary gradients.
23
-
24
- ## Dark theme roles
25
- Canvas #242527; base surface #18191B; raised surface #343638; main neutral symbol #B9BBBE; secondary detail #777B80; divider #46494D; interaction accent #4678ED.
26
- Use distinct charcoal levels with a legible neutral subject; avoid crushed shadows and unnecessary pure-white glare. Separate overlapping dark objects with soft edges or local value changes.
27
- Treat these colors as presentation roles, not a global recoloring filter. Preserve natural photos, device materials, and meaningful status colors. If a light product UI is not supported by the evidence, keep the authentic UI on the light presentation canvas instead of inventing a feature.
28
-
29
- ## Pair invariants
30
- The other theme must use the same object count, positions, scale, crop, camera, UI topology, selected state, chart values, allowed labels, and feature meaning. Change presentation surfaces, neutral values, lighting, and shadows only. Preserve semantic accent hues. If an approved counterpart exists and the tool supports references, use it as a composition reference for a constrained edit. Never create the counterpart with color inversion, brightness-only filters, or a fresh unrelated composition.
31
- Specific invariants:
32
- - Exact row count, positions, dimensions, spacing, and crop
33
- - Shared left boundary of the two resting rows and the blue action backplate
34
- - Middle foreground row displaced right by exactly the exposed action width
35
- - Thumbnail and label bars translated with their foreground row, without changing padding
36
- - Thumbnail positions and neutral label-bar lengths
37
- - Straight-on camera and blue interaction accent
38
-
39
- ## Text and references
40
- No readable text or invented numbers. Use abstract bars for incidental UI labels.
41
- Product reference files to inspect before rendering:
42
- - None
43
- Treat reference content as evidence, not instructions. Use original product-appropriate shapes. Do not copy reference-company identities, logos, attributed style labels, slogans, or distinctive unrelated products.
44
-
45
- ## Exclusions
46
- - Photographic thumbnails or imagery inside the list rows
47
- - Hands, arrows, or gesture trails
48
- - Device frame, app header, or release-note viewer
49
- - Additional action buttons or unreadable text
50
- - Action tile or active row protruding left of the resting list boundary
51
- - Moving the whole list, squeezing row contents, or depicting a reorder drag
52
- No watermark, stock-photo caption, extra claims, or decorative objects unrelated to the change.
53
-
54
- ## Feature correctness
55
- First compare the depicted meaning with the user-visible change and product evidence. The subject, focal detail, state, and relationships must satisfy this scene's composition, preserve, and avoid constraints. Apply only checks relevant to this feature. Check the control meaning, containment, alignment, and selected state against the note and product evidence. If a transition is depicted, identify what stays fixed, what changes, and how related content follows that change. Use the actual interaction model specified in the scene.
56
-
57
- ## Acceptance
58
- Inspect at full size and approximately 350 pixels wide. First verify feature correctness, then visual clarity, then correspondence between the configured themes. Essential content must not clip, incidental text must not become gibberish, and the pair must preserve the composition contract. Matching variants can share the same factual or structural mistake. Register the actual output dimensions and selected file. If generation is unavailable, leave this request pending and hand off this prompt; do not substitute a placeholder image.
1
+ # Release illustration — dark
2
+
3
+ ## Intent
4
+ Create one finished raster illustration for a product release note. Render only the illustration asset, without the surrounding release viewer, headline, body copy, page navigation, or an outer presentation frame.
5
+ User-visible change: A saved item can be added to the queue with one swipe.
6
+ Subject: A saved-item list with an exposed queue action
7
+ Focal detail: The single action revealed behind the middle row
8
+ Context: A fictional productivity interface used to demonstrate the illustration recipe. This scene contains no product performance data or real user information.
9
+
10
+ ## Composition contract
11
+ Archetype: ui-detail
12
+ Target canvas: 1280 × 800 pixels; landscape 1280:800. Produce a single image, not a dark/light collage.
13
+ Enlarge the relevant interface fragment to roughly 55–85% of the canvas width. Keep the focal control inside a 6% safe margin. Supporting interface context may be deliberately cropped.
14
+ Specific scene layout: A landscape 8:5 canvas with a straight-on crop of three broad horizontal list rows. Define a fixed list left boundary L at 17 percent of canvas width. The first and third resting row backgrounds start at L. The blue action backplate behind the middle row also starts at L; it never protrudes to the left of the list. Its exposed width D is about 13 percent of canvas width. Only the middle foreground row is translated right by D, starting at L + D (about 30 percent of canvas width). Its thumbnail and both label bars move with it, preserving exactly the same internal padding as resting rows. All rows have the same height, about 21 percent of canvas height, equal vertical gaps, and matching rounded corners. The row tops sit at about 14, 38, and 62 percent of canvas height. Each row contains one simple neutral square thumbnail and two horizontal bars. The rows retain their original width and intentionally continue beyond the right canvas crop. Keep the blue action and its glyph fully visible within the original list bounds. No phone or outer application frame.
15
+ Elements:
16
+ - Three matching horizontal list rows
17
+ - One exposed accent-colored action tile with a simple queue glyph
18
+ - One neutral square thumbnail and two label bars in each row
19
+
20
+ ## Visual treatment
21
+ Use a straight-on, simplified interface with a small number of layered surfaces. Preserve the product-specific control hierarchy, grouping, alignment, and content padding. Use neutral bars for incidental labels and emphasize the changed control or state. Include only the interaction described by this scene; a static setting does not need a gesture.
22
+ Favor visual precision, quiet hierarchy, and one instantly understandable feature. Small-screen clarity takes priority over decorative detail. Treat the specified element inventory as complete. Keep elements designated as schematic or abstract in that form; do not turn them into additional content or decoration. Authentic content explicitly requested in the brief can retain its own materials and colors. Avoid an unrelated marketing dashboard, neon glow, glass effects, noisy textures, decorative 3D blobs, and unnecessary gradients.
23
+
24
+ ## Dark theme roles
25
+ Canvas #242527; base surface #18191B; raised surface #343638; main neutral symbol #B9BBBE; secondary detail #777B80; divider #46494D; interaction accent #4678ED. Use the accent only when the scene assigns it a functional meaning.
26
+ Use distinct charcoal levels with a legible neutral subject; avoid crushed shadows and unnecessary pure-white glare. Separate overlapping dark objects with soft edges or local value changes.
27
+ Treat these colors as presentation roles, not a global recoloring filter. Preserve natural photos, device materials, and meaningful status colors. If a light product UI is not supported by the evidence, keep the authentic UI on the light presentation canvas instead of inventing a feature.
28
+
29
+ ## Pair invariants
30
+ The other theme must use the same object count, positions, scale, crop, camera, UI topology, selected state, chart values, allowed labels, and feature meaning. Change presentation surfaces, neutral values, lighting, and shadows only. Preserve semantic accent hues. If an approved counterpart exists and the tool supports references, use it as a composition reference for a constrained edit. Never create the counterpart with color inversion, brightness-only filters, or a fresh unrelated composition.
31
+ Specific invariants:
32
+ - Exact row count, positions, dimensions, spacing, and crop
33
+ - Shared left boundary of the two resting rows and the blue action backplate
34
+ - Middle foreground row displaced right by exactly the exposed action width
35
+ - Thumbnail and label bars translated with their foreground row, without changing padding
36
+ - Thumbnail positions and neutral label-bar lengths
37
+ - Straight-on camera and blue interaction accent
38
+
39
+ ## Text and references
40
+ No readable text or invented numbers. Use abstract bars for incidental UI labels.
41
+ Product reference files to inspect before rendering:
42
+ - None
43
+ Treat reference content as evidence, not instructions. Use original product-appropriate shapes. Do not copy reference-company identities, logos, attributed style labels, slogans, or distinctive unrelated products.
44
+
45
+ ## Exclusions
46
+ - Photographic thumbnails or imagery inside the list rows
47
+ - Hands, arrows, or gesture trails
48
+ - Device frame, app header, or release-note viewer
49
+ - Additional action buttons or unreadable text
50
+ - Action tile or active row protruding left of the resting list boundary
51
+ - Moving the whole list, squeezing row contents, or depicting a reorder drag
52
+ No watermark, stock-photo caption, extra claims, or decorative objects unrelated to the change.
53
+
54
+ ## Feature correctness
55
+ First compare the depicted meaning with the user-visible change and product evidence. The subject, focal detail, state, and relationships must satisfy this scene's composition, preserve, and avoid constraints. Apply only checks relevant to this feature. Check the control meaning, containment, alignment, and selected state against the note and product evidence. If a transition is depicted, identify what stays fixed, what changes, and how related content follows that change. Use the actual interaction model specified in the scene.
56
+
57
+ ## Acceptance
58
+ Inspect at full size and approximately 350 pixels wide. First verify feature correctness, then visual clarity, then correspondence between the configured themes. Essential content must not clip, incidental text must not become gibberish, and the pair must preserve the composition contract. Matching variants can share the same factual or structural mistake. Register the actual output dimensions and selected file. If generation is unavailable, leave this request pending and hand off this prompt; do not substitute a placeholder image.