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)
125 lines
9.5 KiB
JSON
125 lines
9.5 KiB
JSON
{
|
||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||
"specVersion": "1.0.0",
|
||
"name": "example-orbit-github",
|
||
"title": "Orbit Github",
|
||
"title_i18n": {
|
||
"zh-CN": "Orbit Github",
|
||
"zh-TW": "Orbit Github",
|
||
"ja": "Orbit Github",
|
||
"ko": "Orbit Github",
|
||
"de": "Orbit Github",
|
||
"fr": "Orbit Github",
|
||
"ru": "Orbit Github",
|
||
"es": "Orbit Github",
|
||
"pt-BR": "Orbit Github",
|
||
"it": "Orbit Github",
|
||
"vi": "Orbit Github",
|
||
"pl": "Orbit Github",
|
||
"id": "Orbit Github",
|
||
"nl": "Orbit Github",
|
||
"ar": "Orbit Github",
|
||
"tr": "Orbit Github",
|
||
"uk": "Orbit Github",
|
||
"en": "Orbit Github"
|
||
},
|
||
"version": "0.1.0",
|
||
"publishedAt": "2026-05-12T07:18:16Z",
|
||
"description": "Open Orbit briefing skill — selected by the Orbit pipeline when GitHub is the user's only connected connector, or when the user explicitly scopes their daily digest to GitHub. Pulls the past 24 hours of PRs, review requests, issues, CI runs, and merges from the user's authenticated GitHub connection and renders them in a layout that mirrors GitHub's native Notifications + PR-diff visual language. This skill should not be triggered manually — it is invoked by Orbit's daily-digest scheduler against live GitHub data.",
|
||
"description_i18n": {
|
||
"zh-CN": "根据 GitHub 连接器自动生成每日摘要的 Orbit 技能。拉取过去 24 小时的 PR、审查请求、问题、CI 运行和合并记录,以类似 GitHub 原生通知的布局呈现。由 Orbit 每日摘要调度器自动调用。",
|
||
"zh-TW": "根據 GitHub 連接器自動生成每日摘要的 Orbit 技能。拉取過去 24 小時的 PR、審查請求、問題、CI 運行和合併記錄,以類似 GitHub 原生通知的佈局呈現。由 Orbit 每日摘要調度器自動調用。",
|
||
"ja": "GitHub コネクタに基づいて毎日のダイジェストを自動生成する Orbit スキル。過去 24 時間の PR、レビューリクエスト、Issue、CI 実行、マージを取得し、GitHub ネイティブ通知風のレイアウトで表示します。Orbit の毎日ダイジェストスケジューラーによって自動起動されます。",
|
||
"ko": "GitHub 커넥터를 기반으로 일일 요약을 자동 생성하는 Orbit 스킬입니다. 지난 24시간의 PR, 리뷰 요청, 이슈, CI 실행, 병합 내역을 가져와 GitHub 네이티브 알림 스타일로 표시합니다. Orbit 일일 요약 스케줄러에 의해 자동 호출됩니다.",
|
||
"de": "Orbit-Skill zur automatischen Erstellung täglicher Zusammenfassungen basierend auf GitHub-Verbindungen. Ruft PRs, Review-Anfragen, Issues, CI-Läufe und Merges der letzten 24 Stunden ab und zeigt sie im GitHub-nativen Benachrichtigungsstil an. Wird automatisch vom Orbit Daily-Digest-Scheduler aufgerufen.",
|
||
"fr": "Compétence Orbit pour générer automatiquement des résumés quotidiens basés sur les connexions GitHub. Récupère les PR, demandes de révision, issues, exécutions CI et fusions des dernières 24 heures et les affiche dans un style de notification natif GitHub. Invoqué automatiquement par le planificateur de résumé quotidien Orbit.",
|
||
"ru": "Навык Orbit для автоматического создания ежедневных сводок на основе подключений GitHub. Извлекает PR, запросы на проверку, задачи, запуски CI и слияния за последние 24 часа и отображает их в стиле нативных уведомлений GitHub. Автоматически вызывается планировщиком ежедневных сводок Orbit.",
|
||
"es": "Habilidad de Orbit para generar automáticamente resúmenes diarios basados en conexiones de GitHub. Recupera PRs, solicitudes de revisión, issues, ejecuciones de CI y merges de las últimas 24 horas y los muestra en el estilo de notificaciones nativo de GitHub. Invocado automáticamente por el programador de resumen diario de Orbit.",
|
||
"pt-BR": "Habilidade Orbit para gerar automaticamente resumos diários baseados em conexões GitHub. Recupera PRs, solicitações de revisão, issues, execuções de CI e merges das últimas 24 horas e os exibe no estilo de notificações nativo do GitHub. Invocado automaticamente pelo agendador de resumo diário do Orbit.",
|
||
"it": "Skill Orbit per generare automaticamente riepiloghi giornalieri basati su connessioni GitHub. Recupera PR, richieste di revisione, issue, esecuzioni CI e merge delle ultime 24 ore e li visualizza nello stile delle notifiche native di GitHub. Invocato automaticamente dallo scheduler di riepilogo giornaliero di Orbit.",
|
||
"vi": "Kỹ năng Orbit tự động tạo bản tóm tắt hàng ngày dựa trên kết nối GitHub. Lấy các PR, yêu cầu đánh giá, vấn đề, chạy CI và merge trong 24 giờ qua, hiển thị theo phong cách thông báo gốc của GitHub. Được gọi tự động bởi bộ lập lịch tóm tắt hàng ngày của Orbit.",
|
||
"pl": "Umiejętność Orbit do automatycznego generowania codziennych podsumowań na podstawie połączeń GitHub. Pobiera PR-y, żądania przeglądu, zgłoszenia, uruchomienia CI i scalenia z ostatnich 24 godzin i wyświetla je w stylu natywnych powiadomień GitHub. Wywoływane automatycznie przez harmonogram codziennego podsumowania Orbit.",
|
||
"id": "Keterampilan Orbit untuk menghasilkan ringkasan harian otomatis berdasarkan koneksi GitHub. Mengambil PR, permintaan tinjauan, masalah, eksekusi CI, dan penggabungan 24 jam terakhir dan menampilkannya dalam gaya notifikasi asli GitHub. Dipanggil secara otomatis oleh penjadwal ringkasan harian Orbit.",
|
||
"nl": "Orbit-vaardigheid voor het automatisch genereren van dagelijkse samenvattingen op basis van GitHub-verbindingen. Haalt PR's, beoordelingsverzoeken, issues, CI-runs en merges van de afgelopen 24 uur op en toont ze in de stijl van native GitHub-notificaties. Wordt automatisch aangeroepen door de Orbit dagelijkse samenvattingsplanner.",
|
||
"ar": "مهارة Orbit لإنشاء ملخصات يومية تلقائية بناءً على اتصالات GitHub. تسترد طلبات السحب ومراجعات الكود والمشكلات وعمليات CI والدمج من آخر 24 ساعة وتعرضها بأسلوب إشعارات GitHub الأصلي. يتم استدعاؤها تلقائيًا بواسطة مجدول الملخص اليومي في Orbit.",
|
||
"tr": "GitHub bağlantılarına dayalı günlük özetleri otomatik olarak oluşturan Orbit becerisi. Son 24 saatteki PR'ları, inceleme isteklerini, sorunları, CI çalıştırmalarını ve birleştirmeleri alır ve GitHub'ın yerel bildirim stilinde görüntüler. Orbit günlük özet zamanlayıcısı tarafından otomatik olarak çağrılır.",
|
||
"uk": "Навичка Orbit для автоматичного створення щоденних зведень на основі підключень GitHub. Отримує PR, запити на перевірку, завдання, запуски CI та злиття за останні 24 години та відображає їх у стилі нативних сповіщень GitHub. Автоматично викликається планувальником щоденних зведень Orbit.",
|
||
"en": "Open Orbit briefing skill — selected by the Orbit pipeline when GitHub is the user's only connected connector, or when the user explicitly scopes their daily digest to GitHub. Pulls the past 24 hours of PRs, review requests, issues, CI runs, and merges from the user's authenticated GitHub connection and renders them in a layout that mirrors GitHub's native Notifications + PR-diff visual language. This skill should not be triggered manually — it is invoked by Orbit's daily-digest scheduler against live GitHub data."
|
||
},
|
||
"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/orbit-github",
|
||
"tags": [
|
||
"example",
|
||
"first-party",
|
||
"prototype",
|
||
"orbit",
|
||
"web",
|
||
"desktop",
|
||
"github-briefing",
|
||
"github-digest",
|
||
"pr-digest",
|
||
"github",
|
||
"untitled"
|
||
],
|
||
"compat": {
|
||
"agentSkills": [
|
||
{
|
||
"path": "./SKILL.md"
|
||
}
|
||
]
|
||
},
|
||
"od": {
|
||
"kind": "scenario",
|
||
"taskKind": "new-generation",
|
||
"mode": "prototype",
|
||
"platform": "desktop",
|
||
"scenario": "orbit",
|
||
"surface": "web",
|
||
"preview": {
|
||
"type": "html",
|
||
"entry": "./example.html"
|
||
},
|
||
"useCase": {
|
||
"query": {
|
||
"en": "Generate today's Open Orbit GitHub briefing. GitHub is my only connected connector — pull yesterday's PRs, review requests, issues, CI runs, and merges and render them as a GitHub Notifications + PR-diff page.",
|
||
"zh-CN": "使用这个插件完成以下任务:Generate today's Open Orbit GitHub briefing. GitHub is my only connected connector — pull yesterday's PRs, review requests, issues, CI runs, and merges and render them as a GitHub Notifications + PR-diff page."
|
||
},
|
||
"exampleOutputs": [
|
||
{
|
||
"path": "./example.html",
|
||
"title": "Orbit Github"
|
||
}
|
||
]
|
||
},
|
||
"context": {
|
||
"skills": [
|
||
{
|
||
"path": "./SKILL.md"
|
||
}
|
||
],
|
||
"assets": [
|
||
"./example.html"
|
||
]
|
||
},
|
||
"pipeline": {
|
||
"stages": [
|
||
{
|
||
"id": "generate",
|
||
"atoms": [
|
||
"file-write",
|
||
"live-artifact"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"capabilities": [
|
||
"prompt:inject",
|
||
"fs:write"
|
||
]
|
||
}
|
||
}
|