Communitygithub.com

ARYAN2302/liquid_researcher

将设计相关的HTML工件任务路由到正确的工件技能、参考、设计系统生成或导出技能。

liquid_researcher 是什么?

ARYAN2302/liquid_researcher 是一个专注于设计路由的AI代理技能,主要用于处理与设计相关的HTML工件任务。它的核心价值在于能够智能地判断任务是否与设计相关,并决定应使用哪个工件技能(如artifact skill)、是否需要参考 `design-system-reference.md` 文件、是否需要执行设计系统生成或导出操作。该技能支持多个平台,如Claude Code、Cursor和Codex,但具体实现依赖于其SKILL.md文档中的路由逻辑。工作原理是:首先快速理解用户请求的内容、场景和风格三个维度,然后检查设计模板库(`design-templates/`)以匹配现成的结构骨架,接着按优先级填充颜色、排版、布局、图标和间距等样式维度的约束,最后生成HTML工件并通过质量门控(quality gate)检查。特别强调,对于表达性场景(如品牌网站、活动页面),需要显式声明视觉承诺(如主体元素大小、动画入口、对称性打破等),以避免默认平庸的输出。该技能的核心原则是:默认行动但避免盲目设计,只在信息缺失可能导致结果不可用时才提问。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ARYAN2302/liquid_researcher/tree/HEAD/skills/design

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

设计技能

设计技能是设计相关HTML工件工作的路由器。

它决定:

  • 任务是否与设计相关
  • 应优先使用哪个工件技能
  • 任务是否应使用 design-system-reference.md
  • 任务是否应使用 design-system-generation.md
  • 任务是否应使用 export.md
  • 在行动前需要多少澄清
  • 如何在路由前快速阅读请求(参见“生成前”)
  • 如何应用内置的设计质量默认值
  • 如何保持生成的HTML结构化以便于后续编辑

设计技能应保持小巧。

工件特定的结构规则位于工件技能文件中。场景的业务判断存在于该场景的技能中。跨领域的工艺规则属于 horizontal-craft/。 参考选择属于 design-system-reference.md。 DESIGN.md 的导入/提取/持久化属于 design-system-generation.md。 导出/打包/交接属于 export.md。

默认的第一阶段交付物是设计工件,通常是HTML,除非所选工件技能或导出目标要求固定图像、幻灯片、包或设计系统规范。当用户要求打包、下载、转换或交接当前工件时,将调用导出。

流程(请阅读一次;它控制以下所有内容)

整个技能是一个流程。大部分是内部且即时的——它仅在请求真正含糊时才暂停。不要将任何步骤变成需要填写的表单或必须先读取的文件。

用户请求
   │
   ▼
1. 理解(内部,对明显请求静默)——并行解析三个维度:
     • 内容  — 主题、信息、目标
     • 场景 — 格式 + 意图  → 哪个场景技能   (参见路由)
     • 风格 — 什么样的风格线索(如有)           (参见风格路由)
   所有三个维度都明确 → 继续。只有**一个**维度真正不清楚 → 提出一个聚焦的问题。
   对于开放式/创意请求,理解还包括创意阅读,而不仅仅是这些操作维度
   — 完成创意上下文 + 设计解读(参见§创意上下文完成)。
   │
   ▼
1.5 检查模板(默认执行,而不仅仅在要求时)
   按载体+场景扫描 `design-templates/INDEX.md`,寻找与请求匹配的模板。
     • 明确匹配 → 将其作为起点;读取该模板的 SKILL.md。使用匹配的模板通常能提高质量
                     — 优先于从头设计。
     • 无好匹配 → 直接使用场景技能。永远不要强行使用不合适的模板。
   模板是起始结构/骨架,而不是要克隆的页面——保留用户的真实内容,
   应用场景技能 + 横向工艺,不要复制参考的确切布局指纹。
   │
   ▼
2. 按优先级填充风格(每个维度:颜色·字体·布局·图标·间距 token)
   对于每个维度,从最优先的源中获取:
     1) 用户的即时描述   ← 最高;它涉及的维度被锁定
     2) 设计系统 (DESIGN.md)      ← 填充用户未提及的维度
     3) 模板 / 种子                ← 填充剩余部分(尤其是布局脚手架)
     4) 并行约束           ← 对任何仍空白的维度的回退
        (仅加载你需要的:字体/图标/颜色/无障碍…)
   源可以组合——例如设计系统的 token + 模板的布局是正常的。
   风格线索是模糊的情绪词,而不是命名的系统(“清新/简约/高级/科技感/复古/温暖/极简/
   赛博”等):不要只是自由联想外观——将其匹配到库。读取
   `design-systems/style-skills` 索引(以及品牌 `index.json`),选择其 `mood` /
   `formality` / `scheme` 标签最能匹配这些词语的条目,然后将其作为基础。风格标签是从
   用户的形容词到具体系统的桥梁(例如 清新简约 → 极简/克制 → `minimal`/`clean`;
   高级 → 奢华/克制 → `luxury`/`refined`;科技感 → 技术感/未来 → `futuristic`/`hud`)。仅当库中没有任何内容
   匹配该情绪时,才从头设计。
   完全没有风格暗示 + 场景受到约束/非创意驱动(工具、仪表盘、管理后台、
   表单、报告、通知、通用SaaS/企业页面):不要从头设计风格——
   主动从 `design-systems/` 选择一个成熟的基础(参见成熟系统回退),以便
   结果是专业且一致的(表达性场景想要独特外观的跳过此步骤,
   按照§创意上下文大胆设计)。
   冲突:如果用户的描述在设计系统上某个维度存在矛盾,
   用户在该维度获胜——并加上一行说明
   (“按您的要求构建了<X>;请注意这不同于附件的设计系统——
   告诉我您是否更愿意保留系统的方向。”)
   │
   ▼
3. 使用场景技能的判断 + 已填充的风格进行构建。
   │
   ▼
4. 质量门控 — 在交付前运行 `quality-gate.md` 作为简短的最终检查清单。

为什么优先级填充重要:它在维度实际为空时才加载约束—— 如果没有提供图标,才读取图标约束;如果没有提供颜色,才读取颜色约束。 这使技能保持轻量,而不是每次转储所有规则。

成熟系统回退

对于界面/受约束的场景(产品原型、仪表盘、管理面板、网页工具、设置/表单/入职/结账、数据密集型界面、通用企业/通知页面),依赖成熟系统而不是自由品味——无论用户是否给出了情绪词。将场景(以及任何情绪词)解析为 design-systems/style-skills 条目(通过其 mood 标签),并将其作为UI基础。界面成熟度是目标;真正的系统提供结构、组件规范、间距节奏、状态行为和交互约定。

不要将此应用于创意/表达性场景:

  • social-card.md
  • content-page.md
  • 编辑/文学页面
  • portfolio.md
  • landing-page.md 和表达性品牌/故事/生活方式页面

对于这些场景,从工件技能自身的视觉判断 + 横向工艺 + 创意上下文进行设计。它们可能引用系统的特性(并且命名的品牌总是加载 brand-inspiration),但不会被迫使用UI工具包。不应使每个工件看起来都像通用UI工具包。


可能为步骤2(填充风格)提供输入的上下文来源:用户内容、截图、选定的模板/种子、上传的 DESIGN.md、当前工件、品牌资产、现有页面、设计系统/UI工具包、或 Figma/代码库参考。使用任何存在的内容;仅在没有其他内容覆盖某维度时才读取并行约束文件。

1. 先理解

这一块决定“做什么之前先想清楚什么”。多数情况内化、即时完成;只有真含糊才问一句。

角色

这个代理是以设计为导向的。

它不是通用UI生成器。它应给每个工件带来设计判断。

一个设计导向的代理应:

  • 理解工件的用途
  • 决定用户应首先注意到什么
  • 移除没有占据其位置的元素
  • 在依赖通用品味之前使用参考
  • 保留结构以便后续编辑
  • 创建可用、可编辑且有意图的工件

目标不是生成更多界面。目标是创建一个设计工件,帮助用户传达、测试、发布、展示或交接有用的内容。


内容语言

生成的HTML内容的语言必须与用户的对话语言匹配,除非用户明确要求其他语言。

规则:

  • 如果用户用中文写作,工件中的所有可见文本(标题、正文、标签、CTA、微文案、导航、占位符、alt文本)必须是中文。
  • 如果用户用英文写作,生成英文内容。
  • 如果用户使用混合语言,主要内容遵循请求的主导语言,并在自然情况下保留混合模式(例如产品名称、技术术语)。
  • 此规则适用于所有场景:落地页、作品集、幻灯片、内容页面、原型、网页工具以及任何未来场景。
  • <html lang> 必须与内容语言匹配(zh-CN、en、ja 等)。
  • 调整预设模板时,用正确语言的文本替换模板的占位符文本。如果内容语言不是英语,不要保留模板的原始英文占位符。
  • 当检测到中文/CJK内容时(根据此规则或用户请求),还要加载 horizontal-craft/chinese-typography.md 作为共享参考。**字体铁律(即使在该文件之前也适用):任何在 font-family 中命名的非系统字体必须实际加载(<link> 或 @font-face),并且包含中文的页面必须在其 font-family 中包含CJK字体名称——绝不能让拉丁字体直接回退到 system-ui,否则中文将在不受控制的后备字体中渲染。**字体选择/加载细节:horizontal-craft/fonts.md。

除非对话真正含糊(例如,用户发送双语简介且没有明确的主导语言),否则不要要求用户确认内容语言。


核心原则

默认行动,但不要盲目设计。

有选择地使用问题。不要默认长篇提问,但在问题能实质性改善结果时,提出简洁的澄清问题。否则,从以下内容推断合理假设:

  • 用户的请求
  • 现有工作区上下文
  • 提供的内容
  • 提供的参考
  • 选定的预设HTML模板(如有)
  • 现有工件状态
  • 上传的 DESIGN.md(如有)
  • 目标场景的常见模式

仅在缺失信息可能导致结果以下情况时,提出澄清问题:

  • 不可用
  • 无法生成
  • 存在法律或品牌风险
  • 明显与用户意图不一致

当有足够信息时,生成一个合理的初始版本,并让用户通过选定区域的评论、局部参数编辑、后续请求或导出进行完善。


创意上下文完成

对于开放式生成,在构建前,静默完成一个简短的创意上下文(每个一句;如果用户提供了则使用,否则从场景/受众/内容/参考推断;除非有用,否则不展示):

创意上下文
1. creative_positioning:  这实际是关于什么的,超越了字面请求
2. first_impression:      观众在最初3秒应感受到什么
3. anti_default:          要避免哪个通用默认值

工件必须明显反映这一点。

在生成前声明一行设计解读

然后承诺一行明确的表述,说明你如何解读请求:

形式:“将此解读为:<页面类型> 面向 <受众>,<特征/氛围>,偏向 <设计方向/系统/参考>。”

  • “将此解读为:面向技术购买者的SaaS落地页,冷静而精确,偏向受约束的类似Linear系统。”
  • “将此解读为:面向年轻消费者的国潮茶品牌活动,大胆而节日气氛,偏向超大字体+强烈色彩,表达性。”
  • “将此解读为:内部管理仪表盘,受约束且清晰可读,偏向成熟设计系统基础。”

可以向用户展示。如果一个维度真正含糊,在此处提出单个聚焦问题,而非猜测。

设计解读必须以风格源子句结尾——必须,选择一个,绝不能留空:

  • 界面场景(原型、信息交互、网页工具、仪表盘/管理后台):命名一个系统——“偏向 <style-skill>(从mood标签匹配)”,或如果命名的品牌则使用 “偏向 <品牌> 来自 brand-inspiration”。默认使用成熟系统;不要从头发明UI。
  • 创意场景(落地页、作品集、活动、卡片、内容):可以是 “引用 <系统> 的 <特性>,原创布局” 或 “原创方向:<一行>”。两者都有效——“原创”是合法来源;重点是你考虑了库。
  • 任何场景 + 命名品牌 → “偏向 <品牌> 来自 brand-inspiration”。

然后对场景进行分类;对于表达性场景承诺一个具体的视觉计划

  • 表达性(品牌网站、活动/推广、作品集、产品落地页英雄、编辑/文化特辑、社交封面):视觉影响是工作的一部分;正确但安全的居中页面是失败。
  • 受约束(仪表盘、管理后台、内部工具、表单、政府通知、报告、数据表、规范):清晰和冷静是工作;保持动画最小、布局常规,并跳过下面的视觉承诺。

对于表达性场景,在编码前静默承诺——每个项目是一个具体元素+动作,绝不是形容词(“大胆/高级/惊喜/动态”被禁止,它们不约束任何东西):

视觉承诺(仅表达性场景)
1. hero_subject:   唯一一个变为大/占主导地位的元素  (例如产品名“桂花酪酪”占据1/3视口,金色+朱红)
2. entrance:       哪些元素动画进入,如何           (例如标题字符交错进入 + 花瓣从顶部落下)
3. break_symmetry: 布局在何处打破中心/网格           (例如价格标签倾斜右下角;印章溢出边缘)
4. focal_contrast: 什么使眼睛首先落在这里            (尺寸跃迁/色块/英雄周围的留白)

完全居中、对称、静态且没有主导元素的页面是默认平庸的结果——对于表达性场景,这意味着承诺未被履行。执行每个承诺的项目。运动细节 → horizontal-craft/animation-discipline.md。

示例(内联)

“做一个 GLM-5.1 模型介绍网站” → 定位:推理/执行基础设施,不是通用AI页面;第一印象:冷静、精确、技术性;反默认:避免通用AI-SaaS英雄+功能卡片模板。场景:表达性 → hero_subject:“GLM-5.1”单个强调色超大;entrance:标题+标语交错淡入;break_symmetry:规格数字偏向一侧;focal_contrast:大号字体与深色负空间形成对比。

第一阶段产品假设

假设大多数用户不提供高级设计上下文——不是 Figma文件/MCP、成熟设计系统、token、组件库、品牌指南。

…

[为翻译截断]

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

ARYAN2302/liquid_researcher

Generate a single-file Chinese atelier-style portfolio website (horizontal-row list + hover-reveal thumb interaction, art lishu typography "Alimama DaoLiTi" via CDN, light/dark theme, hash-routed detail pages). Takes a natural-language description of the studio (name, director, discipline, works) and outputs ONE working .html file. Runs in BOTH Claude Code (writes to ~/Desktop) and GLM / online chat (outputs HTML inline). Trigger phrases include "做个中式工作室作品集", "做个隶书作品集", "lishu-portfolio-gen ...", "做个白屋风格的作品集", or when user drags this skill folder into chat asking for an atelier-style site.

ARYAN2302/liquid_researcher

Chinese-market SaaS pricing page template — soft sky-blue glass-morphism, 4-tier card grid with one elevated "recommended" tier, monthly/annual toggle, FAQ accordion, ¥ pricing with Inter numerals, careful CJK linebreaking, ICP filing footer.

ARYAN2302/liquid_researcher

Premium calm-tech SaaS landing template — bilingual (CN/EN) literary voice over a dark forest-night palette with warm gold accent, Cormorant + Noto Serif SC, Three.js procedural forest hero, station-based scrolling narrative, custom cursor. Built for ambient-AI / creative-tool / philosophical SaaS, not loud commercial launch.

ARYAN2302/liquid_researcher

Pro-camera HUD mockup template — full-viewport black canvas wrapping a real video with monospace overlays (corner brackets, top status bar, side AF/exposure columns, bottom timecode + aperture/shutter/ISO row, vertical 8-filter wheel, animated reticle). For cinematographer portfolios, camera-app demos, LUT pack previews, filter-look auditions. NOT a TikTok/Reels mockup, NOT a storyboard, NOT a shot list, NOT a script document. The chrome wraps real footage — never a div placeholder.

ARYAN2302/liquid_researcher

Premium pre-launch waitlist page template — dark charcoal canvas with subtle vignette, drifting portrait video-thumbnail cards, fade-up cascades, glass nav, live-updating join counter, single email form with success/error states. Built for creative-tool / AI / niche-SaaS invite-only launches with hushed exclusive tone, not loud growth-marketing.

ARYAN2302/liquid_researcher

Implement text-to-speech (TTS) capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to convert text into natural-sounding speech, create audio content, build voice-enabled applications, or generate spoken audio files. Supports multiple voices, adjustable speed, and various audio formats.

ARYAN2302/liquid_researcher

Implement AI-powered video generation capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to generate videos from text prompts or images, create video content programmatically, or build applications that produce video outputs. Supports asynchronous task management with status polling and result retrieval.

ARYAN2302/liquid_researcher

Implement specialized video understanding capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to analyze video content, understand motion and temporal sequences, extract information from video frames, describe video scenes, or perform video-based AI analysis. Optimized for MP4, AVI, MOV, and other common video formats.

相关技能