Files
nexu-io__open-design/plugins/_official/examples/replit-deck/open-design.json
lefarcen 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

138 lines
5.8 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": "example-replit-deck",
"title": "Write a Feature Business Case like a Principal PM",
"title_i18n": {
"en": "Write a Feature Business Case like a Principal PM",
"zh-CN": "像 Principal PM 一样写功能商业论证",
"zh-TW": "像 Principal PM 一样写功能商业论证"
},
"version": "0.1.0",
"publishedAt": "2026-05-12T07:18:16Z",
"description": "For product and technical management work: turn PRDs, roadmaps, RFCs, architecture reviews, and retros into decision documents. Built around the core query \"pm-feature-business-case-deck\", with product strategy lead judgment, buyer-ready proof, and this outcome: approve the feature, architecture, roadmap, or incident follow-up.",
"description_i18n": {
"en": "For product and technical management work: turn PRDs, roadmaps, RFCs, architecture reviews, and retros into decision documents. Built around the core query \"pm-feature-business-case-deck\", with product strategy lead judgment, buyer-ready proof, and this outcome: approve the feature, architecture, roadmap, or incident follow-up.",
"zh-CN": "产品/技术管理场景:围绕 core query「pm-feature-business-case-deck」把粗糙材料整理成“像 Principal PM 一样写功能商业论证”这类可购买、可复用的专业 Deck;突出受众、决策目标、证据链、风险取舍和评审标准。",
"zh-TW": "产品/技术管理场景:围绕 core query「pm-feature-business-case-deck」把粗糙材料整理成“像 Principal PM 一样写功能商业论证”这类可购买、可复用的专业 Deck;突出受众、决策目标、证据链、风险取舍和评审标准。"
},
"license": "MIT",
"author": {
"name": "Open Design",
"url": "https://github.com/nexu-io"
},
"homepage": "https://github.com/nexu-io/open-design/tree/main/plugins/_official/examples/replit-deck",
"tags": [
"example",
"first-party",
"deck",
"product",
"web",
"replit-deck",
"replit-slides",
"replit-ppt",
"replit-style-deck",
"helix-deck",
"holm-memo",
"atlas-chapter",
"bluehouse",
"bevel-campaign",
"product-management",
"pm-feature-business-case-deck",
"roadmap",
"architecture",
"decision-deck",
"commercial-slide-agent",
"product-and-technical-management"
],
"compat": {
"agentSkills": [
{
"path": "./SKILL.md"
}
]
},
"od": {
"kind": "scenario",
"taskKind": "new-generation",
"mode": "deck",
"scenario": "product",
"surface": "web",
"preview": {
"type": "html",
"entry": "./index.html"
},
"useCase": {
"query": {
"en": "Create \"Write a Feature Business Case like a Principal PM\" as a Product and technical management deck in the Replit Deck visual system. Scene: pm-feature-business-case-deck. First ask only for missing essentials: audience, decision target, source-of-truth materials, deadline, and must-keep numbers. Then produce a commercial-grade slide plan, written slides, visual direction, speaker-ready structure, and critic pass against this rubric: can cross-functional reviewers agree on the next irreversible step.",
"zh-CN": "像 Principal PM 一样写功能商业论证。产品/技术管理场景:围绕 core query「pm-feature-business-case-deck」把粗糙材料整理成“像 Principal PM 一样写功能商业论证”这类可购买、可复用的专业 Deck;突出受众、决策目标、证据链、风险取舍和评审标准。 先确认受众、决策目标、素材来源、截止时间和必须保留的数据,再输出叙事主线、页面规划、逐页文案、视觉方向和按评审标准自检的版本。"
},
"exampleOutputs": [
{
"path": "./example.html",
"title": "Write a Feature Business Case like a Principal PM",
"title_i18n": {
"en": "Write a Feature Business Case like a Principal PM",
"zh-CN": "像 Principal PM 一样写功能商业论证",
"zh-TW": "像 Principal PM 一样写功能商业论证"
}
}
]
},
"inputs": [
{
"name": "theme",
"type": "string",
"required": true,
"default": "helix",
"values": [
"helix # Modern minimal · light grey · ink + electric blue · SaaS metrics / board",
"holm # Editorial serif · cream · ink + deep chestnut · legal / finance memo",
"vance # Gallery · cream · cream serif on black bars · art catalog / showcase",
"bevel # Y2K editorial · black · display type + product photo grid · campaign",
"world-dark # Finance green dark · deep green · mint + neon yellow · policy report",
"world-mint # Finance green light · mint · deep green + neon yellow · policy report",
"atlas # Museum · black · serif + vermilion · long-form narrative / chapter deck",
"bluehouse # Consumer card · deep navy · gradient cards + peach → coral · product showcase"
]
},
{
"name": "slide_count",
"type": "number",
"default": 6,
"min": 3,
"max": 20
}
],
"context": {
"skills": [
{
"path": "./SKILL.md"
}
],
"assets": [
"./assets/template.html",
"./references/checklist.md",
"./references/components.md",
"./references/layouts.md",
"./references/themes.md"
]
},
"pipeline": {
"stages": [
{
"id": "generate",
"atoms": [
"file-write",
"live-artifact"
]
}
]
},
"capabilities": [
"prompt:inject",
"fs:write"
]
}
}