Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问许可证需确认审计提醒

jazz-ui-development爵士乐用户界面开发

Agent Skill

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

总安装

808

周安装

34

GitHub Stars

2,462

下载量

283
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:jazz-ui-development(爵士乐用户界面开发)
来源仓库:https://github.com/garden-co/jazz
仓库路径:skills/jazz-ui-development
安装命令:
npx skills add https://github.com/garden-co/jazz --skill jazz-ui-development
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/garden-co/jazz --skill jazz-ui-development

简介

jazz-ui-development 用于辅助界面设计、视觉规范和交互体验优化。

  • 适合让 Agent 生成 UI 方案、检查视觉一致性或改进组件层级。
  • 使用时需结合现有品牌和设计系统,避免堆砌装饰元素。
  • 涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出和对齐。
  • 确保响应式表现符合多端适配要求。

SKILL.md

Jazz UI Development

When to Use This Skill

  • Building user interfaces that display or interact with Jazz data
  • Setting up authentication providers and contexts
  • Debugging reactivity, data loading, or sync issues in the UI
  • Optimizing performance of data subscriptions
  • Handling media (images, files) in the UI

Do NOT Use This Skill For

  • Defining data schemas (use jazz-schema-design)
  • Complex permission logic or sharing workflows (use jazz-permissions-security)
  • Testing questions (use jazz-testing)

Key Heuristic for Agents

Use this skill when the user asks about rendering data, handling user input, managing authentication state, or framework-specific integration (React, Svelte, etc.). If the issue is "data not appearing" but permissions are correct, look here for loading and subscription patterns.

Framework Guides

Select the guide for your specific framework:

Universal CoValue API

These APIs are available on all CoValue instances, regardless of the framework.

Core Properties

All CoValues (CoMaps, CoLists, etc.) have these properties directly on the instance:

  • $isLoaded (boolean): Returns true if the CoValue is fully loaded and ready to read.
  • .toJSON(): Returns a plain JavaScript object representation of the CoValue. Use this for debugging only, not for rendering.

The .$jazz Namespace

Every CoValue instance has a .$jazz property containing metadata and utility methods.

Metadata

  • .$jazz.id (ID<CoValue>): The globally unique ID of the CoValue (e.g., co_zXy...).
  • .$jazz.owner (Group): The Group that owns this CoValue. Access control is determined by membership in this group.
  • .$jazz.createdAt (number): Creation timestamp (ms since epoch).
  • .$jazz.createdBy (ID<Account> | undefined): ID of the creating account.
  • .$jazz.lastUpdatedAt (number): Last update timestamp (ms since epoch).

Loading & Inspection

  • .$jazz.loadingState ("loading" | "loaded" | "unavailable" | "unauthorized"): The current loading state.
  • .$jazz.ensureLoaded({resolve: {...}}): Waits for nested references to load. Returns a promise with a new instance where requested fields are guaranteed available.
const detailedPost = await post.$jazz.ensureLoaded({
  resolve: {
    comments: {
      $each: {
        author: true
      }
    }
  }
});
  • .$jazz.refs (CoMap/CoRecord only): Access nested CoValues as references (with IDs) without loading them.
  • .$jazz.has(key) (CoMap/CoRecord only): Checks if a key exists.

Subscription & Sync

  • .$jazz.subscribe(callback): Manually subscribe to changes. Returns an unsubscribe function. Prefer framework-specific hooks (e.g., useCoState) over this.
  • .$jazz.waitForSync(): Promise that resolves when changes are synced to peers. Useful for critical saves or logout flows.

Version Control

  • .$jazz.isBranched (boolean): Whether the CoValue is currently in a local branch.
  • .$jazz.branchName (string): The name of the current branch.
  • .$jazz.unstable_merge(): Merges a branch back into the main history.

Working with Data Types

CoMap / CoRecord

  • Read: Access properties like a standard JS object (e.g., user.name).
  • Write:

- .$jazz.set(key, value) - .$jazz.delete(key) - .$jazz.applyDiff(diff)

CoList

  • Read: Access by index (list[0]), iterate (map, forEach).
  • Write:

- .$jazz.push(item) - .$jazz.unshift(item) - .$jazz.splice(...) - .$jazz.remove(index or predicate)

CoText (CoPlainText / CoRichText)

  • Read: toString() or use directly in template.
  • Write:

- insertAfter(index, text) - deleteRange({from, to}) - .$jazz.applyDiff(newText)

CoFeed

  • Read: Iterate over feed.all (returns per-session feeds).
  • Write: .$jazz.push(item) (Append-only).
// Subscribing to all entries across all accounts
const allEntries = Object.values(feed.perAccount).flatMap(accountFeed => Array.from(accountFeed.all));

// Pushing a new entry
feed.$jazz.push({ message: "Hello", timestamp: Date.now() });

DiscriminatedUnion

  • Read: Check the discriminator property (e.g. type) to narrow the type.
  • Write: Overwrite the property with a new object of the desired variant.
const list = co.list(MyUnion);
const item = list[0];

if (item.type === "text") {
  console.log(item.value); // item is narrowed to TextVariant
} else if (item.type === "image") {
  console.log(item.image.$jazz.id); // item is narrowed to ImageVariant
}

FileStream

  • Read: Use toBlob() or consume chunks.
  • Write: Use createFromBlob(blobOrFile) or start(metadata) -> push(chunk) -> end().

ImageDefinition

  • Read: Use <Image> component (framework specific) or loadImageBySize.
  • Write: use the createImage function from jazz-tools/media
<Image imageId={productImage.$jazz.id} width={300} />

Troubleshooting

"Data not appearing" or "Value is undefined"

  1. Check $isLoaded: Ensure you are checking if (coValue.$isLoaded) before rendering.
  2. Deep Loading: If nested data is missing, use resolve in your hook (e.g. useCoState(..., {resolve: {items: true}})).
  3. Provider Check: Ensure the component is wrapped in the appropriate <JazzProvider />.

"Infinite re-render loops"

  1. Selector Stability: Ensure your select function in useCoState is stable or returns stable references.
  2. Expensive Selectors: Move computations to useMemo instead of doing them inside the select function.
  3. Equality Function: Use equalityFn to prevent unnecessary updates if the selected data hasn't changed semantically.

"Reactivity not triggering"

  1. Direct Mutations: Ensure you are using .$jazz.set() or .$jazz.push() instead of direct property assignment (e.g. obj.key = val won't sync).
  2. Deep Updates: Remember that updating a nested scalar doesn't trigger a change in the parent CoValue unless that parent property is replaced.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.61%
按下载量换算95

Claude

27.48%
按下载量换算78

Cursor

19.55%
按下载量换算55

Gemini CLI

9.98%
按下载量换算28

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills