Files
open-design/plugins/_official/design-systems/dramatic/open-design.json
lefarcenandGitHub da7c4ae051 fix(web): rank Community "Newest" by shipped publishedAt, not local install timestamps (#5597)
* fix(web): rank Community "Newest" by shipped publishedAt, not local install timestamps

The Community gallery Newest toggle sorted by the installed-record
updatedAt/installedAt. Those are stamped when a machine seeds its own
database, so a fresh install (or an upgrade that re-stamps the catalog)
writes the whole bundled catalog milliseconds apart in folder-walk
order — Newest showed reverse walk order (roughly reverse-alphabetical),
unrelated to publication recency.

Root-cause fix: bundled templates now ship a real publication date.

- packages/contracts: add optional manifest field publishedAt (ISO 8601).
- apps/web sortByNewest: freshness = publishedAt when parseable, else
  updatedAt (right signal for user-installed plugins); tie-breaks and
  stability unchanged.
- plugins/_official: backfill publishedAt into all 460 bundled manifests
  from each folder's first-appearance commit date in upstream git
  history.
- e2e: repository-resource guard requiring every bundled manifest to
  declare a parseable publishedAt, so the signal cannot silently erode.
- docs: field reference entries in plugins-spec (en + zh-CN).

Issue: https://plane.powerformer.net/open-design/projects/49832a02-3158-4faf-bf2f-d0e39c40c7e6/issues/ca0778af-97f5-4fc0-bc63-739280904979

Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)

* worker: 模板用最新筛选,筛选出来的不是最新的

Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)

* fix(web): keep shipped appeal order inside same-publishedAt batches

Review follow-up (#5597, nettee): after the freshness tie on an equal
publishedAt, the comparator still consulted local updatedAt/installedAt,
which a fresh install stamps in folder-walk order — so every
same-publication batch (largest: 322 manifests on one catalog date)
re-sorted per machine instead of keeping the shipped visual-appeal
ranking. Same-publishedAt records now preserve their incoming position;
local timestamps break ties only when at least one side has no usable
publishedAt. Adds the requested regression spec pinning
same-publishedAt / different-updatedAt records.

Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)

* fix(web): gate publishedAt freshness to bundled records; untrack oversized looper attachment

Review follow-up (#5597, nettee round 2): publishedAt was overriding
updatedAt for every visible plugin, so a user-installed github/local/
marketplace plugin carrying an old manifest publishedAt would be buried
behind bundled templates despite a newer local install. publishedAtMs
now returns null for non-bundled records — "Newest" means install
recency for user installs, catalog publication for bundled ones. Adds
the requested regression (non-bundled, old publishedAt, newer
updatedAt) and clarifies the field docs (en + zh-CN).

CI repair: commit 578f7a9 tracked .looper-attachments/bug13_1.png
(3.8MB bug screenshot), tripping the Static gate 1MiB blob guard and
the Validate workspace aggregate. Untrack it and gitignore
.looper-attachments/ so harness attachments stay out of the repo.

Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)
2026-07-14 08:43:57 +00:00

114 lines
5.4 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
"specVersion": "1.0.0",
"name": "design-system-dramatic",
"title": "Dramatic",
"title_i18n": {
"zh-CN": "戏剧化",
"zh-TW": "戲劇化",
"ja": "ドラマチック",
"ko": "드라마틱",
"de": "Dramatisch",
"fr": "Dramatique",
"ru": "Драматичный",
"es": "Dramático",
"pt-BR": "Dramático",
"it": "Drammatico",
"vi": "Kịch tính",
"pl": "Dramatyczny",
"id": "Dramatis",
"nl": "Dramatisch",
"ar": "درامي",
"tr": "Dramatik",
"uk": "Драматичний",
"en": "Dramatic"
},
"version": "0.1.0",
"publishedAt": "2026-05-12T07:18:16Z",
"description": "High-contrast, theatrical design with bold layouts, immersive visuals, and unconventional compositions that command attention.",
"description_i18n": {
"zh-CN": "高对比度的戏剧性设计,采用醒目的布局、沉浸式视觉效果和非常规构图,强势吸引注意力。",
"zh-TW": "高對比度的戲劇性設計,採用醒目的版面、沉浸式視覺效果和非常規構圖,強勢吸引注意力。",
"ja": "高コントラストで演劇的なデザイン。大胆なレイアウト、没入感のあるビジュアル、型破りな構図で注目を集めます。",
"ko": "대담한 레이아웃, 몰입형 비주얼, 파격적인 구성으로 시선을 사로잡는 고대비 연극적 디자인입니다.",
"de": "Kontrastreiche, theatralische Gestaltung mit markanten Layouts, immersiven Visuals und unkonventionellen Kompositionen, die Aufmerksamkeit fordern.",
"fr": "Design théâtral à fort contraste avec des mises en page audacieuses, des visuels immersifs et des compositions non conventionnelles qui captent l'attention.",
"ru": "Высококонтрастный театральный дизайн с выразительными макетами, захватывающими визуальными эффектами и нестандартными композициями, привлекающими внимание.",
"es": "Diseño teatral de alto contraste con diseños audaces, visuales inmersivos y composiciones no convencionales que captan la atención.",
"pt-BR": "Design teatral de alto contraste com layouts ousados, visuais imersivos e composições não convencionais que capturam a atenção.",
"it": "Design teatrale ad alto contrasto con layout audaci, immagini immersive e composizioni non convenzionali che catturano l'attenzione.",
"vi": "Thiết kế ấn tượng với độ tương phản cao, bố cục táo bạo, hình ảnh sống động và cách sắp đặt độc đáo thu hút sự chú ý.",
"pl": "Kontrastowy, teatralny projekt z odważnymi układami, wciągającymi wizualizacjami i niekonwencjonalnymi kompozycjami, które przyciągają uwagę.",
"id": "Desain teatrikal kontras tinggi dengan tata letak yang berani, visual imersif, dan komposisi tidak konvensional yang menarik perhatian.",
"nl": "Contrastrijk, theatraal ontwerp met gedurfde lay-outs, meeslepende visuals en onconventionele composities die de aandacht trekken.",
"ar": "تصميم مسرحي عالي التباين بتخطيطات جريئة ومرئيات غامرة وتركيبات غير تقليدية تجذب الانتباه.",
"tr": "Cesur düzenler, sürükleyici görseller ve dikkat çeken alışılmadık kompozisyonlarla yüksek kontrastlı, teatral tasarım.",
"uk": "Висококонтрастний театральний дизайн із виразними макетами, захопливими візуальними ефектами та нестандартними композиціями, що привертають увагу.",
"en": "High-contrast, theatrical design with bold layouts, immersive visuals, and unconventional compositions that command attention."
},
"license": "MIT",
"tags": [
"design-system",
"first-party",
"design",
"bold-expressive"
],
"od": {
"kind": "scenario",
"taskKind": "new-generation",
"mode": "design-system",
"scenario": "design",
"surface": "web",
"useCase": {
"query": {
"en": "Generate a {{artifactKind}} using the Dramatic design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md.",
"zh-CN": "使用这个插件完成以下任务:Generate a {{artifactKind}} using the Dramatic design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
}
},
"inputs": [
{
"name": "artifactKind",
"label": "Artifact kind",
"type": "select",
"options": [
"landing page",
"dashboard",
"marketing site",
"app screen"
],
"default": "landing page"
},
{
"name": "brief",
"label": "Brief",
"type": "text",
"placeholder": "What should the page communicate?"
}
],
"context": {
"designSystem": {
"ref": "dramatic",
"primary": true
},
"assets": [
"./DESIGN.md"
]
},
"pipeline": {
"stages": [
{
"id": "generate",
"atoms": [
"file-write",
"live-artifact"
]
}
]
},
"capabilities": [
"prompt:inject",
"fs:write"
]
}
}