open-design/prompt-templates/image
Joey-nexu 7ce4eb4e82
feat(prompt-templates): add Notion-style team dashboard (Live Artifact) (#799)
* feat(prompt-templates): add Notion-style team dashboard (Live Artifact)

Adds a single image prompt template under the Live Artifact category — a
Notion-native team dashboard mockup with KPI grid, 7-day sparkline,
activity feed, and linked-database task table.

This is the first prompt template to use the curated Live Artifact
category, whose de/fr/ru localization slots were already reserved in
apps/web/src/i18n/content{,.fr,.ru}.ts. Only the new tag 'live-artifact'
is added to each locale's PROMPT_TEMPLATE_TAGS map (+1 line each) so the
arrayContaining check in e2e/tests/localized-content.test.ts continues
to pass.

Template-level only: no new surface, no loader changes, no schema or
TypeScript type changes.

* fix(prompt-templates,i18n): register 'Live Artifact' category and template ID fallback for de/fr/ru

CI's e2e/localized-content.test.ts enumerates LOCALIZED_CONTENT_IDS from
apps/web/src/i18n/content.ts and asserts:

  - ids.promptTemplates              ===   sorted(all template ids in prompt-templates/)
  - ids.promptTemplateCategories     ⊇     all categories actually used by templates
  - ids.promptTemplateTags           ⊇     all tags actually used by templates

The new notion-team-dashboard-live-artifact template introduced both
the first 'Live Artifact' category and the first prompt-template id
without a copy translation, so each locale needs:

- 'Live Artifact' added to *_PROMPT_TEMPLATE_CATEGORIES (currently
  consumed via arrayContaining; order doesn't matter)
- 'notion-team-dashboard-live-artifact' listed in
  *_PROMPT_TEMPLATE_IDS_WITH_EN_FALLBACK so it joins ids.prommplates
  via the EN-fallback path (no per-locale title/summary copy needed)

The 'live-artifact' tag was already added to *_PROMPT_TEMPLATE_TAGS in
the previous commit on this branch.

3 files changed, +6 / -3.

* fix(i18n): register Live Artifact category + template id fallback (CI repair on #799)

* fix(i18n): register Live Artifact category + template id fallback (CI repair on #799)

* fix(i18n): register Live Artifact category + template id fallback (CI repair on #799)

* fix(prompt-templates): scrub live/connector affordances from notion-team-dashboard prompt (#799 review)

Reviewers (mrcfps, lefarcen) flagged that even with the amber "Sample
data — design preview" banner and the "(sample data)" footer, the inner
prompt blob still asked the model to render UI affordances claiming a
real Notion / Composio connector binding ("Live · synced" pill, "Last
refreshed just now", "Refresh from Notion" blue button, callout saying
numbers are "pulled from your {workspace} Notion workspace via the
Composio connector"). That contradicts the prompt-only contract and
reintroduces the #778 mock-honesty concern.

Rewrite the prompt blob so every UI element is consistently presented
as seeded sample data:

- topbar.preview_pill (was live_pill):ample · design preview' pill
  with explicit negative instruction no to render any live/sync pill
- page_header.meta_row: drop 'Last refreshed', 'Auto' toggle, and the
  'Refresh from Notion' blue button; explicit DO NOT instructions
- callout: 'prompt-only design preview ... seeded sample data ... not
  pulled from a real Notion workspace and not refreshed via the
  Composio connector. For real refreshable / connector-backed Live
  Artifacts, use the live-artifact skill.' Also removes the bare
  '{workspace}' placeholder that was not using {argument ...} syntax
  (P2 nit from lefarcen).
- activity_feed_card.subtitle: 'Notion-style seeded activity for
  design preview' (was 'From Notion')
- linked_database.title/subtitle: marked '(sample)' / 'seeded sample
  rows · no live connector binding'
- linked_database.row_styles: explicit negative instruction not to
  render an 'Updated ↻' refresh badge
- footer: 'Notion-style sample data · seeded design preview, not bound
  to any Notion workspace or Composio connector'
- honesty_rule: enumerates all live/sync/refresh affordanche
  generator must NOT render

Top-level metadata (id, title, summary, category, tags, model, aspect,
previewImageUrl, source) is unchanged. Preview PNG already shows the
amber banner and a layout without a Refresh button, so it matches the
new in-prompt language.

* fix(prompt-templates): scrub live/connector affordances from notion-team-dashboard prompt (#799 review)

Reviewers (mrcfps, lefarcen) flagged that even with the amber "Sample data — design preview" banner and the "(sample data)" footer, the inner prompt blob still asked the model to render UI affordances claiming a real Notion / Composio connector binding ("Live · synced" pill, "Last refreshed just now", "Refresh from Notion" blue button, callout saying numbers are "pulled from your {workspace} Notion workspace via the Composio connector"). That contradicts the prompt-only contract and reintroduces the #778 mock-honesty concern.

Rewrite the prompt blob so every UI element is consistently presented as seeded sample data:

- topbar.preview_pill (was live_pill): 'Sample · design preview' pill with explicit negative instruction not to render any live/sync pill.
- page_header.meta_row: drop 'Last refreshed', 'Auto' toggle, and the 'Refresh from Notion' blue button; explicit DO NOT instructions for all three.
- callout: 'prompt-only design preview ... seeded sample data ... not pulled from a real Notion workspace and not refreshed via the Composio connector. For real refreshable / connector-backed Live Artifacts, use the live-artifact skill.' Also removes the bare '{workspace}' placeholder that was not using {argument ...} syntax (P2 nit from lefarcen).
- activity_feed_card.subtitle: 'Notion-style seeded activity for design preview' (was 'From Notion').
- linked_database.title/subtitle: marked '(sample)' / 'seeded sample rows · no live connector binding'.
- linked_database.row_styles: explicit negative instruction not to render an 'Updated ↻' refresh badge.
- footer: 'Notion-style sample data · seeded design preview, not bound to any Notion workspace or Composio connector'.
- honesty_rule: enumerates all live/sync/refresh affordances the generator must NOT render.

Top-level metadata (id, title, summary, category, tags, model, aspect, previewImageUrl, source) is unchanged. Preview PNG already shows the amber banner and a layout without a Refresh button, so it matches the new in-prompt language.

* fix(prompt-templates): scrub live/connector affordances from notion-team-dashboard prompt (#799 review)

Reviewers (mrcfps, lefarcen) flagged that even with the amber "Sample data — design preview" banner and the "(sample data)" footer, the inner prompt blob still asked the model to render UI affordances claiming a real Notion / Composio connector binding ("Live · synced" pill, "Last refreshed just now", "Refresh from Notion" blue button, callout saying numbers are "pulled from your {workspace} Notion workspace via the Composio connector"). That contradicts the prompt-only contract and reintroduces the #778 mock-honesty concern.

Rewrite the prompt blob so every UI element is consistently presented as seeded sample data:

- topbar.preview_pill (was live_pill): 'Sample · design preview' pill with explicit negative instruction not to render any live/sync pill.
- page_header.meta_row: drop 'Last refreshed', 'Auto' toggle, and the 'Refresh from Notion' blue button; explicit DO NOT instructions for all three.
- callout: 'prompt-only design preview ... seeded sample data ... not pulled from a real Notion workspace and not refreshed via the Composio connector. For real refreshable / connector-backed Live Artifacts, use the live-artifact skill.' Also removes the bare '{workspace}' placeholder that was not using {argument ...} syntax (P2 nit from lefarcen).
- activity_feed_card.subtitle: 'Notion-style seeded activity for design preview' (was 'From Notion').
- linked_database.title/subtitle: marked '(sample)' / 'seeded sample rows · no live connector binding'.
- linked_database.row_styles: explicit negative instruction not to render an 'Updated ↻' refresh badge.
- footer: 'Notion-style sample data · seeded design preview, not bound to any Notion workspace or Composio connector'.
- honesty_rule: enumerates all live/sync/refresh affordances the generator must NOT render.

Top-level metadata (id, title, summary, category, tags, model, aspect, previewImageUrl, source) is unchanged. Preview PNG already shows the amber banner and a layout without a Refresh button, so it matches the new in-prompt language.

---------

Co-authored-by: joeylee12629-star <joeylee12629-star@users.noreply.github.com>
2026-05-07 19:42:09 +08:00
..
3d-stone-staircase-evolution-infographic.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
anime-martial-arts-battle-illustration.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
e-commerce-live-stream-ui-mockup.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
game-screenshot-anime-fighting-game-captain-ryuuga-vs-kaze-renshin.json feat(prompt-templates): add anime fighting game screenshot template (#208) 2026-05-01 22:26:28 +08:00
game-screenshot-three-kingdoms-guanyu-slaying-yanliang.json feat(prompt-templates): add three Three Kingdoms ARPG gameplay screenshot templates (#207) 2026-05-01 22:22:11 +08:00
game-screenshot-three-kingdoms-lyubu-yuanmen-archery.json feat(prompt-templates): add three Three Kingdoms ARPG gameplay screenshot templates (#207) 2026-05-01 22:22:11 +08:00
game-screenshot-three-kingdoms-zhaoyun-cradle-escape.json feat(prompt-templates): add three Three Kingdoms ARPG gameplay screenshot templates (#207) 2026-05-01 22:22:11 +08:00
game-ui-ancient-china-open-world-mmo-hud.json feat(prompt-templates): add dance storyboard and ancient-china MMO HUD templates (#187) 2026-05-01 17:30:02 +08:00
illustrated-city-food-map.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
illustration-crayon-kid-drawing-rework.json feat(prompt-templates): add crayon kid-drawing style-transfer template (#295) 2026-05-02 22:05:19 +08:00
infographic-otaku-dance-choreography-breakdown-gokurakujodo-16-panels.json feat(prompt-templates): add otaku-dance choreography breakdown infographic (#209) 2026-05-01 22:27:07 +08:00
momotaro-explainer-slide-in-hybrid-style.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
notion-team-dashboard-live-artifact.json feat(prompt-templates): add Notion-style team dashboard (Live Artifact) (#799) 2026-05-07 19:42:09 +08:00
notion-team-dashboard-live-artifact.preview.png feat(prompt-templates): add Notion-style team dashboard (Live Artifact) (#799) 2026-05-07 19:42:09 +08:00
profile-avatar-anime-girl-to-cinematic-photo.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-casual-fashion-grid-photoshoot.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-cinematic-south-asian-male-portrait-with-vultures.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-cyberpunk-anime-portrait-with-neon-face-text.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-elegant-fantasy-girl-in-violet-garden.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-ethereal-blue-haired-fantasy-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-glamorous-woman-in-black-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-hyper-realistic-selfie-texture-prompts.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-lavender-fantasy-mage-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-monochrome-studio-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-old-photo-restoration-to-dslr-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-poetic-woman-in-garden-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-professional-identity-portrait-wallpaper.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-realistically-imperfect-ai-selfie.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-signed-marker-portrait-on-shikishi.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-snow-rabbit-empress-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-snow-rabbit-mask-hanfu-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-snowy-rabbit-hanfu-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-snowy-rabbit-spirit-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
profile-avatar-song-dynasty-hanfu-portrait.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-anime-pokemon-shop-outfit-teaser-poster.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-cinematic-elevator-scene.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-confused-elf-girl-at-pastel-desk.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-editorial-fashion-photography.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-fashion-editorial-collage.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-psg-transfer-announcement-poster.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-sensational-girl-dance-storyboard-8-shots.json feat(prompt-templates): add dance storyboard and ancient-china MMO HUD templates (#187) 2026-05-01 17:30:02 +08:00
social-media-post-showa-day-retro-culture-magazine-cover.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-social-media-fashion-outfit-generation.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-travel-snapshot-collage-prompt.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
social-media-post-vintage-sign-painter-sketch.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
vr-headset-exploded-view-poster.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00