mirror of
https://github.com/nexu-io/open-design.git
synced 2026-09-20 06:15:06 +08:00
da7c4ae051
* 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)
138 lines
5.8 KiB
JSON
138 lines
5.8 KiB
JSON
{
|
||
"$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"
|
||
]
|
||
}
|
||
}
|