minutework 0.1.56 → 0.1.58

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.
@@ -73,6 +73,26 @@ When the task involves event-driven behavior or reacting to external/reference
73
73
  datasets, read `skills/event-bus/SKILL.md` and
74
74
  `skills/cross-server-subscriptions/SKILL.md`.
75
75
 
76
+ ## Workspace Customizations (Authored Overlays)
77
+
78
+ This workspace may carry developer-authored customizations that sit ALONGSIDE
79
+ the managed guidance and are never managed, overwritten, or refreshed by
80
+ `minutework workspace sync-assets`:
81
+
82
+ - `CLAUDE.workspace.md` / `AGENTS.workspace.md`: workspace-specific guidance that
83
+ extends this file. In Claude Code, read `CLAUDE.workspace.md` alongside
84
+ `CLAUDE.md`; Codex and Cursor read `AGENTS.workspace.md` alongside `AGENTS.md`.
85
+ If the file is present, follow it the same way you follow this guidance.
86
+ - `skills.workspace/`: workspace-authored skills, each a `SKILL.md` with the same
87
+ shape as the managed `skills/`. Browse `skills.workspace/` alongside `skills/`
88
+ and read the relevant `SKILL.md` when a topic matches your task.
89
+
90
+ These authored files are intentionally outside the managed asset manifest, so
91
+ `sync-assets` can update the managed baseline (`CLAUDE.md`, `AGENTS.md`,
92
+ `skills/`) without ever touching your customizations. Authored overlays EXTEND
93
+ this managed guidance for the specific workspace; they do not relax the Hard
94
+ Rules, hard boundaries, or trust boundaries stated above.
95
+
76
96
  ## Capability Gaps
77
97
 
78
98
  When a request exposes missing shared MinuteWork substrate, read
@@ -54,6 +54,8 @@ Generated-workspace-first guidance should live here, especially:
54
54
  - `vuilder-workspace-architecture/SKILL.md`
55
55
  - `vuilder-public-site-authoring/SKILL.md`
56
56
  - `vuilder-mode-b-hosted-and-spawn/SKILL.md`
57
+ - `visualize-context/SKILL.md`
58
+ - `landing-page-assets/SKILL.md`
57
59
  - `workspace-guidance-refresh/SKILL.md`
58
60
  - `shell-architecture/SKILL.md`
59
61
  - `runtime-capability-inventory/SKILL.md`
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: landing-page-assets
3
+ description: "Generate website-ready hero images, backgrounds, section visuals, textures, and OG assets, then wire selected images into public-site surfaces."
4
+ ---
5
+
6
+ # Landing Page Assets
7
+
8
+ Use this skill when the user asks for website-bound imagery, for example:
9
+
10
+ - "generate hero image"
11
+ - "background image"
12
+ - "section below it"
13
+ - "website asset"
14
+ - "landing page visual"
15
+ - "use this in the site"
16
+ - "OG image"
17
+ - "texture"
18
+
19
+ Default v1 output: generate an actual image, store it, add alt text, and wire
20
+ the selected asset into the target site/page/manifest when a target surface is
21
+ available.
22
+
23
+ ## Asset Roles
24
+
25
+ Choose one role before prompting:
26
+
27
+ - `hero_background`: wide atmospheric or metaphor image behind/around HTML text.
28
+ - `hero_visual`: primary product/domain visual next to or within the hero.
29
+ - `section_illustration`: visual supporting a feature/content section.
30
+ - `background_texture`: text-free repeatable or full-bleed texture/motif.
31
+ - `cta_visual`: closing section image that reinforces action.
32
+ - `og_image`: social preview image; text is allowed only when explicitly needed.
33
+
34
+ Strong rule: prefer HTML text over text baked into images. Only generate a
35
+ poster/graphic with text when the user explicitly asks for a graphic image or
36
+ OG card.
37
+
38
+ ## Workflow
39
+
40
+ 1. Infer the asset role and target section.
41
+ - Use the latest user request, current page JSON, section id, and prior
42
+ visual direction.
43
+ - If a target page/manifest is available, note where the asset should land.
44
+ - If the user only wants exploration, generate a preview artifact and do not
45
+ mutate the site.
46
+
47
+ 2. Preserve brand and layout inputs.
48
+ - Keep palette, typography mood, material style, photo/illustration style,
49
+ and metaphor constraints.
50
+ - For verticals like trucking, healthcare, legal, or finance, use grounded
51
+ domain visuals and avoid generic SaaS abstractions.
52
+
53
+ 3. Write an asset prompt.
54
+ - Include role, section purpose, subject, composition, palette, lighting,
55
+ texture, crop safety, responsive layout intent, and negative constraints.
56
+ - For backgrounds, explicitly request no text, no UI, no logos, and safe
57
+ empty space where page HTML will sit.
58
+ - For section images, avoid fake product screenshots unless the user asks
59
+ for an interface mockup.
60
+
61
+ 4. Generate through `media.generate_image`.
62
+ - `use_case`: `landing_page_asset`.
63
+ - Use 16:9 or 21:9 for hero/backgrounds, 4:3 for section visuals, and
64
+ 1200x630 for OG images.
65
+ - Attach generated outputs to the thread for preview.
66
+
67
+ 5. Promote the selected asset when it belongs in a public site.
68
+ - Use the public-dj media asset upsert endpoint/service to create or update
69
+ `MediaAsset` by `vertical + asset_key`.
70
+ - Store durable metadata: `asset_key`, `digest`, `url`, `alt_text`, `role`,
71
+ dimensions, mime type, and prompt summary.
72
+ - Do not store long-lived presigned URLs or storage secrets in manifest
73
+ metadata.
74
+
75
+ 6. Wire the page/manifest.
76
+ - Add or update manifest `payload.media[]` entries:
77
+
78
+ ```json
79
+ {
80
+ "asset_key": "fleet-hero-owner-operator",
81
+ "digest": "sha256:...",
82
+ "url": "/api/v1/media/fleetrun/fleet-hero-owner-operator/sha256:...",
83
+ "alt_text": "Owner-operator reviewing an insurance quote beside a semi truck",
84
+ "role": "hero_background",
85
+ "metadata": {
86
+ "width": 1600,
87
+ "height": 900,
88
+ "mime_type": "image/png"
89
+ }
90
+ }
91
+ ```
92
+
93
+ - In section payloads, reference images by `asset_key` when possible:
94
+
95
+ ```json
96
+ {
97
+ "type": "hero_with_cta",
98
+ "headline": "Instant quote. Instant answers.",
99
+ "image": {
100
+ "asset_key": "fleet-hero-owner-operator",
101
+ "role": "hero_background"
102
+ }
103
+ }
104
+ ```
105
+
106
+ - Supported section image fields for v1:
107
+ `hero_with_cta.image`, `feature_grid.items[].image`,
108
+ `content_markdown.image`, and `cta_banner.image`.
109
+ - For workspace-only generated assets, place selected files under the
110
+ site's public asset directory and reference them directly.
111
+
112
+ ## Prompt Patterns
113
+
114
+ Hero/background:
115
+
116
+ ```text
117
+ Create a website hero_background for [product/page] serving [audience].
118
+ Subject: [domain-specific scene or metaphor].
119
+ Composition: wide crop, responsive-safe, clear negative space for HTML text on [side].
120
+ Style: [brand style, palette, lighting, realism level].
121
+ No text, no UI, no logos, no fake brand marks.
122
+ Aspect ratio: 16:9 or 21:9.
123
+ ```
124
+
125
+ Section visual:
126
+
127
+ ```text
128
+ Create a section_illustration for the section "[section headline]".
129
+ Show [specific concept/user/workflow] in a grounded way.
130
+ Composition: uncluttered, works beside HTML text, no tiny labels.
131
+ Style: [brand cues].
132
+ Avoid generic SaaS dashboards unless a product UI is explicitly requested.
133
+ ```
134
+
135
+ OG image:
136
+
137
+ ```text
138
+ Create an og_image for [product/page].
139
+ Use the brand/product as the first-viewport signal.
140
+ Readable text only if explicitly requested; otherwise leave text to HTML/social metadata.
141
+ Aspect ratio: 1200x630.
142
+ ```
143
+
144
+ ## Guardrails
145
+
146
+ - Do not bake landing page body copy into imagery.
147
+ - Do not generate fake customer logos, certifications, insurance carrier logos,
148
+ DOT records, prices, or legal/compliance claims.
149
+ - Do not use dark, blurred, cropped, stock-like imagery when the asset needs to
150
+ communicate the actual product, buyer, or domain.
151
+ - Do not promote an asset into a site unless the user asked to use it or the
152
+ current task is site generation.
153
+ - Always provide alt text for promoted assets.
@@ -135,6 +135,9 @@ generated Builder workspace.
135
135
  action capability; preflight fail-closes on connection/secret availability, and the
136
136
  delivery row is idempotent on the ActionRun id with a SENT short-circuit. Not
137
137
  agent-exposed yet: exposure is a separate per-definition mw.core.agent_actions flip.
138
+ - `media.generate_image` -- Runtime media action capability wraps the existing
139
+ generate_image service, stores outputs in runtime_storage, and attaches
140
+ generated_image thread artifacts when thread context is present.
138
141
  - `consent.check_channel` -- Service seam consumed by other executors and sidecars as
139
142
  a preflight; not an agent-callable tool.
140
143
  - `discovery.request_proposal` -- Effectful; outside the default READ_RING, granted
@@ -217,6 +217,25 @@
217
217
  "approval_required": false,
218
218
  "interim_path": ""
219
219
  },
220
+ {
221
+ "primitive_id": "media.generate_image",
222
+ "family": "media",
223
+ "display_name": "Generate Image",
224
+ "description": "Generate image assets through the runtime media provider and store outputs as runtime files.",
225
+ "runtime_app": "runtime_media",
226
+ "dispatch_path": "",
227
+ "status": "active",
228
+ "requires_integration": false,
229
+ "requires_secret": true,
230
+ "metered": true,
231
+ "executor_ready": "live",
232
+ "executor_ref": "capability:media.generate_image",
233
+ "executor_notes": "Runtime media action capability wraps the existing generate_image service, stores outputs in runtime_storage, and attaches generated_image thread artifacts when thread context is present.",
234
+ "agent_exposable": true,
235
+ "agent_exposure_path": "app_pack_action",
236
+ "approval_required": false,
237
+ "interim_path": ""
238
+ },
220
239
  {
221
240
  "primitive_id": "consent.check_channel",
222
241
  "family": "consent",
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: visualize-context
3
+ description: "Generate strategy, product, system, PLG, and concept visuals from messy context, then attach generated images to the Builder thread."
4
+ ---
5
+
6
+ # Visualize Context
7
+
8
+ Use this skill when the user asks to visualize strategy/product context, for
9
+ example:
10
+
11
+ - "visualize this"
12
+ - "generate an image"
13
+ - "show the flow"
14
+ - "make this easier to see"
15
+ - "PLG loop"
16
+ - "system map"
17
+ - "architecture visual"
18
+ - "background metaphor"
19
+
20
+ Default v1 output: an actual generated image attached back to the thread as a
21
+ runtime-stored `generated_image` artifact. Do not stop at a prompt unless image
22
+ generation is unavailable.
23
+
24
+ ## Workflow
25
+
26
+ 1. Extract the decision context.
27
+ - Identify the product, audience, buyer, loop, system, or strategic argument.
28
+ - Preserve named entities, constraints, data flow, and any stated design style.
29
+ - Separate verified facts from interpretation. Do not invent traction,
30
+ customers, logos, certifications, or claims.
31
+
32
+ 2. Choose the visual type.
33
+ - `product_flow_map`: activation, value moment, retention, conversion.
34
+ - `plg_loop`: acquisition, free value, habit, share/expand, conversion.
35
+ - `system_diagram`: components, data movement, approvals, runtime boundaries.
36
+ - `strategy_map`: thesis, unfair advantage, risks, market timing, proof.
37
+ - `concept_visual`: metaphor image that makes an abstract idea graspable.
38
+ - `landing_hero_mockup`: first-screen marketing visual preview only. If the
39
+ user wants assets used in a site, switch to `landing-page-assets`.
40
+
41
+ 3. Write a structured image prompt.
42
+ - Put the core visual in the first sentence.
43
+ - Include layout, hierarchy, style, palette, target aspect ratio, and what
44
+ should be legible.
45
+ - Use labels sparingly. Prefer large, readable labels over dense tiny text.
46
+ - If the image is meant to explain a complex flow, ask for a clean diagram
47
+ composition, not a photorealistic scene.
48
+
49
+ 4. Generate through `media.generate_image`.
50
+ - Use `use_case`: `visualize_context`.
51
+ - Use 16:9 or 4:3 for strategy diagrams; 1:1 only when the user asks for a
52
+ square artifact.
53
+ - Set `request_source_ref` to the current thread/run context when available.
54
+ - Attach the generated output as a thread artifact. The action capability
55
+ does this automatically when thread context is present.
56
+
57
+ 5. Respond with the result.
58
+ - Explain the visual in one or two sentences only if needed.
59
+ - Do not claim the image proves anything. It is a visualization aid.
60
+
61
+ ## Prompt Contract
62
+
63
+ For visual prompts, include:
64
+
65
+ - `visual_type`
66
+ - `main_subject`
67
+ - `audience`
68
+ - `flow_or_components`
69
+ - `style_reference`
70
+ - `brand_constraints`
71
+ - `must_show`
72
+ - `must_avoid`
73
+ - `aspect_ratio`
74
+
75
+ Use this shape internally:
76
+
77
+ ```text
78
+ Create a [visual_type] showing [main_subject] for [audience].
79
+ Composition: [layout and hierarchy].
80
+ Content: [flow/components, 4-7 max].
81
+ Style: [brand/design cues].
82
+ Readable text: [short labels only].
83
+ Avoid: [fake logos, claims, tiny text, generic stock visuals].
84
+ Aspect ratio: [16:9 / 4:3 / square].
85
+ ```
86
+
87
+ ## Guardrails
88
+
89
+ - Do not invent fake customer names, fake logos, fake metrics, fake compliance,
90
+ or market claims.
91
+ - Do not create tiny unreadable UI text. Use simple labels and preserve detail
92
+ in the thread answer or source content.
93
+ - Do not bake long paragraphs into images.
94
+ - Do not use generic SaaS stock visuals when the user supplied a specific
95
+ domain, metaphor, or brand style.
96
+ - If the user asks for a website asset or says "use it in the site", switch to
97
+ `landing-page-assets` because that needs asset role, alt text, and promotion.