mcpField
D
direct

direct

github.com/adobe设计与 UI316494 次安装今天更新
代码仓库

关于 direct

direct 是 Stardust 的设计技能,可将自由形式的改版需求转化为项目设计规范和推理记录,供后续原型制作或迁移使用。它会区分忠于现有品牌的刷新与明确要求的品牌重塑。

主要功能

  1. 01将改版意图转为设计规范
  2. 02生成 PRODUCT.md、DESIGN.md 和 DESIGN.json
  3. 03在 direction.md 中记录设计推理
  4. 04支持品牌忠实模式与品牌重塑模式
  5. 05无需重做意图分析即可添加变体

适用场景

  1. 01在制作原型前确定网站视觉方向
  2. 02为网站迁移准备设计输入
  3. 03保留现有方向并探索设计变体

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/adobe/skills --skill direct

安装后在 Claude Code 中输入/direct确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
add-variant.md
cross-site-brand-inputs.md
direction-format.md
improvements-list.md
mode-a-plus.md
multi-variant.md
palette-picker.md
prep-mode.md
reference/palettes/
library.json
README.md

详细介绍

stardust:direct

将用户自由形式的重设计意图转化为完整的目标规范:项目根目录中的 PRODUCT.md 和 DESIGN.md(格式无可挑剔)、带有差异审计轨迹的 DESIGN.json 附属文件,以及包含完整推理轨迹的 stardust/direction.md。

direct 会生成供 prototype 和 migrate 使用的规范。它不会编写原型或迁移页面——这些工作由下游子命令执行。

输入

  • <phrase> — 可选的位置参数。用户的自由形式意图(“让它更好”“更像 Linear、少些 Salesforce”“在小屏幕上显得更高级”)。如果省略,请向用户询问。
  • --re-direct — 可选。用新方向替换当前方向。根据 skills/stardust/reference/state-machine.md,会将已原型化/已批准/已迁移的页面标记为过时。不带此标志时,默认行为为增量式:如果方向已存在,Agent 会在替换前询问。
  • --rebrand — 可选。强制进入品牌重塑模式(全面滚动生成差异种子,不继承模式 A)。不带此标志时,只要捕获的信号为 signal-strong,默认采用忠实于品牌的模式(§ 模式检测优先级)。
  • --prep — 可选。以迁移准备模式运行:确认类型目录,最终确定模块目录,记录颜色预留和品牌级元数据默认值,并根据更广泛的爬取结果重新评估方向。参见下文的 § 准备模式。通常通过 prepare-migration 编排器调用。
  • --add-variant <name> — 可选。基于现有方向添加一个新变体,不重新运行意图推理或模式检测。在项目根目录写入 DESIGN-<name>.{md,json},并在 stardust/direction.md 中追加每个变体对应的章节;现有原型不会被标记为过时。参见下文的 § 添加变体模式。

设置

  1. 执行主技能的设置流程(skills/stardust/SKILL.md § 设置)——严格检查 impeccable 依赖、加载上下文并读取状态。
  2. 确认 stardust/state.json 存在,且至少包含一个 extracted 页面。如果没有,请停止并建议先运行 $stardust extract <url>。
  3. 读取 stardust/current/_brand-extraction.json。如果文件不存在,请停止——extract 未完成品牌表层提取;请重新运行 extract。 3b. 跨站品牌输入(如有)。state.json.designSource(设计来源模式:模式 A 的固定项会绑定到供体推导出的系统)以及 _brand-extraction.json.origins[](关联属性的证据:会扩大可强化的内容范围,但不会扩大固定项范围)。阅读 reference/cross-site-brand-inputs.md,了解固定项和证据规则;在计划中说明当前生效的模式。
  4. 如果 stardust/direction.md 存在,则读取它。如果已有先前方向且未传入 --re-direct,请询问用户是要完善现有方向,还是替换方向。
  5. 验证来源(仅准备模式)。启用 --prep 时,请在类型或模块检测前,根据 reference/prep-mode.md 执行来源验证。
  6. **对捕获的品牌信号进行分类。**读取 _brand-extraction.json,并标记为以下一种:
    • signal-strong — 调整近似重复项分组并排除纯黑/纯白(如果它们是唯一条目)后,调色板至少有 3 种不同颜色,并且 type.headingFamily.name 或 type.bodyFamily.name 中至少有一个捕获的字体系列名称。这是任何已提取商业网站的常见情况。
    • signal-thin — 调色板有 2 种颜色,或未捕获任何字体系列,或 type.scaleAudit.kind === "ad-hoc" 且不同的标题字号少于 3 种。品牌信息存在,但不足以完全支撑改版。
    • signal-absent — 调色板有 1 种或 0 种颜色,或 _brand-extraction.json._provenance.notes 表明提取失败、被登录墙阻挡或主要内容来自 iframe。 该分类会影响第 2 阶段的模式检测优先级。如果该分类会改变默认模式,请在计划中说明。

流程

第 1 阶段 — 推理

按照完整流程执行意图推理,详见 skills/stardust/reference/intent-reasoning.md。步骤 1–6:用维度词汇重述 该短语,识别移动方向,识别缺口,提出至多两个澄清问题,映射到 无可挑剔的命令序列,并向用户展示计划。

skills/stardust/reference/intent-examples.md 中的示例可用于校准风格。 问题数量上限为两个:每轮都不得例外。

零移动不是一种方向——移交给 replica。 重述之前,检查该短语是否将每个轴都固定为不变:例如“完全复刻”“相同设计”“像素级精准”“忠实还原”“保留当前设计”“1:1”“仅重新搭建平台”“原样保留”,或将 ia-fidelity: verbatim 与固定的调色板、字体和密度同时指定。这属于相同设计迁移,direct 无事可决:在 stardust/direction.md 中写一段说明(“零移动短语——相同设计迁移;方向是 replica 第 2 阶段中的机械式升级”),如果 state.json.flow 尚未设置,则将其标记为 "replica"(参见 ../stardust/reference/state-machine.md § Flow keys),然后停止并提示“运行 $stardust replica <url>”。对于此类短语,绝不能继续制定重新设计方向、--prep 模块目录或计划——即使处于免打扰模式也一样:下文的“什么都不问”绝不意味着“遇到复刻短语时继续执行”。(记录:曾在用户输入“完全复刻——原样保留”时调用 direct,却继续执行;最终发布了 2,207 个页面,像素差异达 24–28%,是复刻验收标准的四到五倍。)

免打扰模式(依据 skills/stardust/SKILL.md § Hands-off mode, state.json.handsOff: true):不提问,也不等待——但不得跳过上述零移动检查。 根据已收集的证据推导原本要通过提问获取的所有答案——根据记录的默认值和触发条件确定密度和 ia-fidelity,根据已收集的页面表面确定受众和语体——并在 direction.md § Movements 中将每一项记录为明确标注的假设(例如:density: balanced (hands-off default — multi-audience floor fired))。仍须编写计划;执行时跳过确认关卡。下文提到“询问用户”的问题额度和关卡也采用相同处理方式:推导答案、标记假设,然后继续。

密度调整(一次性,仅在未移动时)

当用户的短语没有改变 density 轴(依据 reference/intent-dimensions.md § 4),且解析出的语体为 brand 时,提出一个简短的后续问题——计入两个问题的上限:

密度调整——(a)疏朗(《纽约时报·观点》级别的留白,约 96px 的区块内边距);(b)均衡(舒缓但紧凑,约 64–72px);(c)紧凑(数据密集,约 40–48px)。对于采用品牌语体且 IA 面向多种受众的网站,默认选项为**(b)均衡**;只有当页面以编辑内容为主导,且各区块内容密度较高时才选择(a)。

如果用户回答了,将所选等级按 density: <tier> 的格式标记在 direction.md § Movements 中。如果用户未回答,则品牌语体默认选用均衡(而非疏朗),并标记为 density: balanced (default)。

以下情况完全跳过此问题:

  • 用户的短语已经改变了 density(“更密集”“留白更多”“紧凑”“精简”“宽敞”等都算作改变)。
  • 语体为 product(依据 § 4,默认值为 packed)。
  • 语体为 ambiguous,且在推理早期确定语体比询问密度更有价值——将密度问题留到下一轮,而不要占用本轮的问题名额。

第 4 阶段读取已标记的等级以设置 spacing.sectionPadding; 不会再次询问。

IA 保真度调优(仅在尚未确定时询问一次)

当用户的措辞没有自动锁定 ia-fidelity(根据 reference/intent-dimensions.md § 9,也就是说,既没有出现 "verbatim"、 "same IA"、"keep the structure"、"swap the surface"、 "don't rethink the IA",也没有出现 "reimagine"、"rethink"、 "deeper redesign"、"what if"),请简短追问一次 ——计入最多两个问题的限制:

IA 保真度——(a)逐字保留(章节顺序和内容要点相同;变体仅探索表层:颜色、字体、密度、动效),还是(b)重新构想(变体可以弱化 / 突出 / 删除章节、调整 IA 优先级,并围绕页面主线提出“如果这样呢”的设想)。 对于常见的焕新需求,默认选(b);当客户要求网站结构完全不变、只更换表层时,选(a)。

如果用户作出回答,在 direction.md § Movements 中将所选层级标记为 ia-fidelity: <tier>。如果用户未回答,则默认选重新构想,并标记为 ia-fidelity: reimagined (default)。

以下情况完全跳过此问题:

  • 用户的措辞已自动锁定该轴(§ 9 中的任一触发短语——"same IA, swap the surface" → 逐字保留;"what if we rethought the home page" → 重新构想)。
  • 正在优化现有的 direction.md(沿用当前层级,除非用户明确重新锁定)。

Phase 4 会将该层级写入 iaPriorities[].mutability;后续的 prototype 会读取此值。

如果密度调优问题和 IA 保真度问题都尚未确定,请将这两个问题一起提出——"在确定方案前还有两点需要确认:(1)密度……,(2)IA 保真度……"——以遵守最多两个问题的限制。如果品牌 / 产品语气的确认也尚未完成,则优先确认语气;将密度 / IA 保真度中的一个问题留到下一轮。

在继续之前,等待用户确认("go",或提出对计划的修改)。

Phase 2 — 确定差异化输入

确认计划后,根据 skills/stardust/reference/divergence-toolkit.md 确定差异化工具包的输入。在生成种子之前,先按以下模式检测优先级,判断是否需要生成种子。

模式判定优先级(先运行)

direct 的默认模式取决于是否存在包含可用信号的提取品牌表层,而不是仅由用户的自由表达决定。含糊的焕新表述(“让它更现代”“令人惊艳的新版”“治好设计疲劳”)属于迁移类需求,而非触发重新品牌设计的信号。这里的优先级刻意采用非对称设计:更安全的模式(模式 A——忠于品牌)会涵盖含糊表述;风险更高的重新品牌设计模式则要求用户明确提出。

  1. 网站迁移 / 焕新——默认模式。 如果 § Setup 步骤 6 中记录的品牌信号为 signal-strong,则默认启用模式 A。用户的表述会调整模式 A 中的表现力、独特性、语气和信息密度轴,但配色和字体将固定为提取到的品牌表层,并遵守图像复用约定(见下文)。**标志性元素也会保留:**提取到的标志性主视觉媒介(背景视频 / 画布 / Lottie / 滚动动效,记录在 _brand-extraction.json#voice.heroMedium 中)或全站使用的图案将予以复现,而不会被简化——遵循 skills/stardust/reference/intent-dimensions.md § 8b,且不计入 surprise 预算。在计划中说明: “已启用忠于品牌模式——配色和字体固定为提取到的品牌表层。传入 --rebrand 可覆盖此设置。”

  2. 重新品牌设计——明确选择加入。 当以下任一触发条件成立时,将覆盖模式 A:

    • 用户的表述包含明确的重新品牌设计信号:rebrand、new brand、clean slate、start over、from scratch、replace the brand、not brand-faithful、editorial reimagination、completely new、redo the brand 中的任意一项。
    • 传入了 --rebrand 标志。
    • 提取到的信号为 signal-absent(没有可用的继承依据)。将此情况作为自动切换并说明原因;用户可以纠正。

    在重新品牌设计模式下,按照下文“默认模式(无约束)”执行标准的差异化种子抽取。在计划中说明: “已启用重新品牌设计模式——完整执行差异化种子抽取。因 <原因>,已跳过模式 A。”

  3. 忠于品牌 + 定向探索。 当用户要求 N 个变体(例如*“3 个变体”、“4 个方向”*),且模式 A 已启用时,适用 reference/multi-variant.md 中的变体角色约定(触发条件:§ Phase 2.6)。变体 A 固定为严格模式 A(配色和字体固定、保留信息架构、应用改进清单中的每一项)。变体 B 及后续变体可以强化一个提取到的特征(图案、照片处理方式,或当前网站未充分体现的信息架构优先级),但不得:

    • 引入提取到的品牌表层之外的字体,
    • 引入提取到的品牌配色之外的颜色,
    • 改变 PRODUCT.md 中的风格基调。
  4. 信号不足时的回退。 如果提取到的信号为 signal-thin,则启用模式 A,但会发出警告:*“提取到的品牌表层信息不足——{原因}。变体将继承现有信息;部分维度需要通过差异化工具包补充。”*用户可以使用更广的抓取范围重新运行提取(--cap 25),也可以降低保真度后继续。

模式判定完成后,按适用情况运行下文中现有的模式定义(模式 A 流程、模式 B 锚点参考优先级、模式 C 基础家族覆盖规则)。

模式 A — 忠于品牌模式

当捕获到的品牌信号为 signal-strong 且没有触发重新品牌模式覆盖(参见上文 § 模式检测优先级)时自动触发;或者用户固定了字体和配色 (通过明确表述:“保留字体和配色”、“保留现有品牌”、“忠于品牌的重新设计”;或通过将两者都列为锚点的约束)。

在此模式下,direct 不会重新抽取种子中的字体或配色维度—— 它们已锁定。

模式流程:

  1. 记录 font_deck.name = "brand-inherited" 和 font_deck.picked_by = "user-constraint"。不要调用 reference/palette-picker.md。

  2. 记录 palette.source = "inherited from _brand-extraction.json" 和 palette.picked_by = "user-constraint"。如果继承的名称违反品牌原生规则,则按照工具包 § 4 重命名角色(这仍然有用——角色重命名属于呈现调整,而非偏离选择)。

  3. 仍然要为未锁定的维度重新抽取种子(十年、语域,以及适用时的基底系列,见下文模式 C)。这些维度仍会推动差异化——即使字体和配色已固定,视觉语域和时代特征仍可变化。

  4. 按照 reference/direction-format.md § 忠于品牌的反转,自动生成 extensions.divergence 中的 brand_faithful_inversions[] 块。 该列表大多可机械生成(规范模式请参见 direction-format.md 中的 § 忠于品牌的反转)。

  5. 在用户报告中指出哪些维度发挥了作用,哪些没有:

    Divergence (brand-faithful mode):
      decade           ✓ rolled    → 2025-now
      craft            ✓ rolled    → Riso print
      register         ✓ rolled    → Memoir-adjacent
      ground-family    inherited   → stark-white (brand-native)
      font deck        inherited   → existing site stack
      palette          inherited   → existing 5-color set
    
  6. 图像复用约定。 捕获的图像通过其公开 URL(或由提取阶段 2 写入 stardust/current/assets/media/ 的本地副本),在与源站相同的语义位置 复用。主视觉仍是主视觉。故事卡片肖像仍是故事卡片肖像。 项目卡片图像仍是项目卡片图像。背景图案仍是背景图案。

    这是忠于品牌继承的一部分:将捕获的肖像换成占位图,或把主视觉照片降为缩略图,都会抹去品牌最重要的信任信号。

    在模式 A 下,只有以下情况可以偏离语义位置保留原则:

    • 捕获的图像已损坏(404、被 referrer-policy 阻止、受 CORS 限制,或记录为 localPath: null 且带有 downloadError)。
    • 品牌审核指出该图像存在问题(例如新增的 T-stock-photography——标记出捕获图像明显是模板化图库素材,品牌团队无论如何都会替换)。
    • 改进清单(阶段 2.5)明确指出该图像需要调整裁切或位置——此时应在修正后的裁切或位置复用同一图像。

模式 A 下禁止使用合成占位图。当捕获的图像无法复用时,原型形态说明必须明确声明这一缺口,渲染后的原型则应显示带特征元素的占位图,让审核者看到缺口,而非伪造的照片。

用户可以在计划确认环节修正模式(例如“其实让我调整一下配色”或“其实重新打造品牌”),然后再锁定。

模式 A+ — 品牌邻近式优化(有界、证据门控)

介于模式 A 的严格固定与 --rebrand 之间的中间层级:当改进清单(阶段 2.5)根据证据指出捕获到的字体或颜色存在不足时,允许进行有界且分类不变的升级——每项升级都必须记录在 extensions/divergence. brand_adjacent_refinements[] 中,且默认不启用。应用任何优化之前,请先阅读 reference/mode-a-plus.md。

模式 B — 锚点参考优先

当用户提供锚点参考(Q1/Q2 的回答,例如 “Pentagram 非营利组织、This American Life、NYT Opinion 长篇文章”)时, 这些参考已经隐含了种子维度(Pentagram → 年代 2025-now 编辑风格;This American Life → 近似 Memoir 的语体)。不要重新抽取这些参考已隐含的维度。

Agent 来源的锚点(用户未提供时的默认方式)。 模式 B 不再等待用户提供参考:运行 参考调研流程 (skills/stardust/reference/reference-research.md),为品牌的类别、语体和 已确定的方向变化搜集 3–5 个真实世界的锚点。调研所得的锚点与用户提供的锚点具有相同的 隐含维度权重,并记录为 picked_by: "reasoned: <anchor>",完整引用则记录在 extensions.divergence.references_used[] 中。 若发生冲突,用户提供的参考始终优先于调研所得的参考。如果无法进行调研(按 reference-research.md § 1 用尽调研层级), 模式 B 将退化为仅对未隐含维度进行确定性抽取。

优先级规则:

  1. 如果存在锚点参考,提取其隐含维度:
    • 年代:根据参考的时代(Pentagram → 2025-now; 复古 Penguin → 1960s)。
    • 工艺:根据参考的媒介(TAL → 音频编辑风格, 本身不算一种工艺,但 Bandcamp → 网页印刷混合;Riso 印刷 选集 → Riso)。
    • 语体:根据文化参考组合(Memoir、Tabloid、Catalogue 等)。
    • 底色类别:根据这些参考的典型底色(NYT Opinion → 奶油色/羊皮纸色;Pentagram 非营利组织 → 纯白或单色调色)。
  2. 将每个隐含维度标记为 picked_by = "anchor-reference: <ref-name>"。
  3. 仅对未隐含的维度抽取种子。
  4. 将锚点到维度的映射记录在 extensions.divergence.seed.anchors[] 中。

模式 B 可与模式 A 结合:锚点参考缩小种子范围, 忠于品牌的约束锁定字体/调色板,剩余抽取仅涉及锚点尚未隐含的内容。

模式 C — 忠于品牌的底色类别覆盖

当模式 A 激活且种子的 ground_family 抽取结果 与品牌现有底色不一致时(例如种子抽到 monochrome-tint,但品牌采集到的背景是 #ffffff 纯白),以品牌底色为准。种子抽取结果不会被 舍弃,而是用于替代区块的表面(依据 divergence-toolkit.md § 4 颜色角色)。在 extensions.divergence.seed.ground_family.override 中记录覆盖,并注明以下三种原因之一:

  • brand-faithful — 模式 A 已激活,且品牌有固定底色。
  • print-paper — 用于印刷/纸张类别的手动覆盖 (现有工具包规则)。
  • direction-driven — 采用种子结果(默认;不覆盖)。

这三种原因互斥;在面向用户的报告中说明所选原因。

默认模式(无约束)

当 Mode A 和 Mode B 均不适用时(品牌重塑或弱信号运行,且没有用户提供的锚点),流程为研究优先,随机生成兜底:

  • **优先进行参考研究。**运行 skills/stardust/reference/reference-research.md,为品牌类别和已确定的方向寻找锚点,并推导这些锚点所暗示的维度(picked_by: "reasoned: <basis>")。 这是将 Mode B 的机制应用于 Agent 搜集的锚点——参见上文 § Mode B。
  • **随机生成作为兜底和决胜手段。**按照工具包 § 2 的说明,随机生成 4 维种子 (年代 × 工艺 × 语域 × 基底系列),仅用于研究未能暗示的维度;如果无法开展研究,则用于所有维度。如果自审发现模型尽管做过研究仍在复现其默认模式,也可以用随机生成来有意打破趋同。逐个维度记录 picked_by。
  • **字体组合。**从 10 个命名组合中选择(参见 § 3),让研究锚点以种子暗示的同样方式影响选择(例如,编辑类衬线字体锚点集 → serif-luxury)。如果研究和种子都未暗示字体组合,则根据哈希确定性地选择。
  • 配色方案。如果已确定的方向调整了色彩能量轴,或将现有配色方案列为问题的一部分:基于主要研究锚点或库中的候选方案,推导出完整的角色分级配色方案(文本、底色、边框、强调色、状态色)——该库(skills/direct/reference/palette-picker.md)是一个锚点库,而非封闭的选项菜单;模型负责设计色阶,并在将其纳入令牌前验证每组文本与底色搭配均符合 WCAG AA 标准(该确定的地方要确定——数学计算;不该限制的地方不限制——审美判断)。在 extensions.divergence.palette_source 中记录推导依据。否则,沿用 stardust/current/_brand-extraction.json 中的现有配色方案;如果继承的名称违反品牌原生规则,则按照工具包 § 4 重命名角色。
始终执行
  • **反工具箱审计。**无论模式如何,都要对已确定的方向进行自审(工具包 § 1「执行 + 自审」)。每项反工具箱命中都需要品牌专属的理由,否则就予以移除。

按照 divergence-toolkit.md 底部的 v2 存储格式,在 DESIGN.json.extensions.divergence 中记录每项决策。

阶段 2.5 — 改进清单(仅限 Mode A)

在下游渲染任何变体之前,创建 stardust/prototypes/<slug>-improvements.md,列出在所捕获网站中观察到的 3–5 个具体弱点。这是变体 A 渲染所依据的简要说明:不规定具体要求(无视觉目标),而是描述现有网站与该品牌在 2026 年的合格实现之间的差距。变体 B 及后续变体将此清单视为最低要求(可以进一步改进,但不得与清单矛盾)。

当已确定的模式为品牌重塑时,跳过此阶段——改进清单以忠实继承品牌为前提,而品牌重塑是替换网站,而非修复网站。

**复用审计结果。**如果该来源对应的 stardust/audit/<domain-slug>/audit.json 已存在(由 stardust audit 技能生成),则将其中的设计发现作为候选改进项,而不是从头重新推导——在每项的证据引用中保留发现 ID。 以下具体性标准仍适用于每项沿用的发现。

列表内容

列表涵盖五类内容。每一项都应足够具体,以便后续的 prototype 形状简报可以按编号引用。

  1. 已过时的设计模式——指出具体模式及其所属时期,而非表达感受。
  2. 信息架构杂乱——层级不清、行动号召(CTA)弱或重复、转化漏斗支离破碎。
  3. 对比度问题、无障碍缺陷、密度问题——如有,从 brand-review.html 的 Tensions 中提取(例如 T-color-imbalance、T-img-alt-empty 等)。
  4. 陈词滥调的惯例——品牌可以摆脱这些惯例,同时仍保持鲜明的品牌辨识度。
  5. 错失的机会——现有网站未能充分利用的机会。

各类别的示例: reference/improvements-list.md。

具体性标准

当一项缺陷引用以下内容时,才算足够具体:

  • 一项可衡量的观察结果(尺寸、比例、对比度值、数量或具名的张力 ID),来自各页面 JSON、品牌评审或品牌提取;
  • 有问题的设计模式(须明确命名,例如“居中主视觉 + 双 CTA”);
  • A 变体简报将采用的一项具体修复方案。

“主视觉需要改进”三项都不符合。“在宽度为 1440 的视口中,主视觉照片被裁切为 280×180,而捕获的原图支持 1440×810 的 16:9 全幅显示;A 变体修复方案:以全幅显示,并将标题移至左对齐的双栏叠加布局”则三项都符合。

格式

使用 Markdown,并按照 artifact-map 约定添加 _provenance 前置元数据块。每项都用带编号的列表条目,包含类别标签、缺陷描述和一行修复方案。完整示例见 reference/improvements-list.md § 格式示例。

停止条件

如果阅读品牌评审、各页面 JSON 和品牌提取后,Agent 仍无法列出 3 项符合具体性标准的缺陷,则停止。A 变体没有简报,“更好”的说法也就不成立。参见 § 失败模式 (d)。

Agent 不应牵强附会——“主视觉过时了”不算一项,“排版可以更现代”也不算一项。当捕获的网站在可观察维度上的执行水准已经很高时,列表确实可能为空。在这种情况下,应如实呈现空列表,并建议缩小范围(仅调整密度和对比度,或改为一个探索性变体,而不是三个)。

Phase 2.6 — 多变体分支(当 N > 1 时)

当用户请求 N 个变体(措辞包含 “3 个变体”、“4 个方向” 或类似表述)时,变体槽位按角色区分,而非按种子区分。根据 Phase 1 标记的 ia-fidelity 层级进行分支:verbatim 下创建表面调整分支 A1/A2/A3;reimagined 下采用角色区分的 A + B + C(忠实还原 + 改进 / 放大一项捕获的特征 / 放大另一项捕获的特征)。阅读 reference/multi-variant.md,并在确定任何变体前,遵循其中的变体角色约定、差异化约定(每对变体至少有 2 项实质性改动)、表面分支规则和拒绝渲染条件。

第 3 阶段 — 编写目标 PRODUCT.md

在项目根目录编写 PRODUCT.md,使用 impeccable 的 reference/init.md § Write PRODUCT.md 作为格式规范(而非要调用的运行时命令;init(原名 teach)会进行访谈)。直接编写是有意为之:到 direct 运行时,impeccable 访谈可能提出的所有问题,都已通过上文 stardust 的意图推理 + 差异解决流程得到解答。

文件顺序:先放 stardust 的 块 (根据 `../stardust/reference/artifact-map.md` § Provenance,与每个 stardust 编写的产物相同),然后是 `# Product`,再逐字放入 注释,这样 impeccable 才会将文件读取为当前产品记录,而不是旧记录。 宁可省略某个章节,也不要用泛泛的文字填充。需要填写的章节:

  • Platform — 仅填写值 web。
  • Users — 根据已解决的受众元组,以及从提取的品牌表层信息中获取的语气信号。
  • Product Purpose — 根据用户的短语 + 提取的主视觉文案 + 已确定的语气,先写一行价值陈述,再写一行范围说明。
  • Positioning — 根据提取的主视觉和证明性文案,写出网站提出的、邻近网站无法如实照搬的主张。如果文案未明确说明,标注为推断。
  • Capabilities and Constraints — 已解决的约束集(a11y-first、RTL-required、平台或内容约束),以及用户明确确定的任何产品事实。
  • Brand Commitments — 有约束力的身份决策:已确定的 register 轴、根据已确定的表达轴 + 语气 + 参考集合推导出的品牌个性(用户明确调整过的轴优先于继承值),以及反向参考——用户提出的反向参考 加上 与已确定方向相关的反工具箱护栏(例如,“现代化”会触发 Generic-2026-SaaS 外观护栏;明确列出,使 prototype 和 polish 能够落实)。
  • Evidence on Hand — stardust/current/ 下已收集的文案、图像和证明材料,附路径;以及后续工作不得虚构的缺失内容(未收集到客户评价、没有定价信息等)。
  • Product Principles — 3-5 条长期有效的战略原则,每条对应一个具体的轴向变化。格式:一条以动词开头的原则,加一行阐述。不要写视觉方案;这些内容属于 DESIGN.md。
  • Accessibility & Inclusion — 当约束集包含 a11y-first、RTL-required 或类似约束时填写。否则省略,并沿用 impeccable 的默认设置。

如果无法有把握地根据输入填写某个章节,则标注 ``,并附上一句说明依据的句子。切勿凭空编造策略。

第 4 阶段 — 编写目标 DESIGN.md 和 DESIGN.json(仅限站点级)

在项目根目录编写 DESIGN.md,使用 impeccable 的 reference/document.md 作为格式规范——Stitch YAML frontmatter 加上按固定顺序排列的 6 个规范章节。

仅限站点级。 direct 编写的是设计系统,而非页面级部署。页面特定的布局决策应写入 prototype 第 1 阶段编写的 stardust/prototypes/<slug>-shape.md——参见 skills/prototype/reference/page-shape-brief.md。

边界是抽象角色与具体部署:

在 DESIGN.md / DESIGN.json(站点系统)中在 <slug>-shape.md(页面部署)中
Token 词汇表(颜色、字体排版、间距、圆角)每页的区块列表和顺序
语气规则(“Mixed-Case-Headlines”)、反向参考每个区块的实际文案(来源于 current/pages/.json)
反工具箱审查、差异追踪页面专属的布局决策(“首页的主视觉区采用 5/3 分栏”)
抽象组件词汇表:button-primary、button-secondary、card、input、badge、link(默认样式、密度、尺寸——不得包含页面专属尺寸或内容)区块级组件尺寸(the211Panel 在各视口中为 320×260,并带有停靠点)
命名系统组件的角色(存在 header、footer、cta-band 模式)系统组件的部署(固定顺序的实际卡片标签、链接目标、文案变体)
每个抽象组件的默认视觉样式每页的组合方式(statRow 中包含实际文案“100 YEARS · 18,400 PEOPLE HOUSED · …”)
语气示例(该做与不该做、语气范例)每页的交互模型和关键状态

以下是不得出现在 DESIGN.md / DESIGN.json 中的具体示例:

  • 系统组件模式的实际卡片标签。
  • 区块级像素尺寸、停靠点、特定断点的宽度。
  • 统计数字、地址、引言、人物姓名。
  • “首页的主视觉区是 X”——这属于首页部署。
  • 每页的文案变体(“捐赠页面上的 CTA 文案为 Y”)。

如果重新设计要求指定区块级尺寸或看起来像全站设定的实际标签(“每页右下角都停靠一个 211 面板”),请在 DESIGN.json 中将其编码为抽象角色(例如 extensions.systemComponentRoles.persistent-help,包含用途/位置类别,但不含实际文案或尺寸),并让每页的形状说明指定其部署方式。

Token 来源:

  • colors——来自选定的调色板(palette-picker.md 输出), 或通过角色重命名继承的调色板。角色名称必须 符合 toolkit § 4(贴合品牌,不得仅使用 Primary / Secondary / Alarm 等作为角色名称)。

  • typography——来自选定的字体组合。字号根据 已确定的表现力轴进行缩放(浓烈 → 比例 ≥ 1.333;明确 → 比例 1.25;克制 → 比例 1.125-1.2)。标题与正文的 对应关系继承自字体组合。

  • rounded——根据提取的品牌表面 borderRadius.primary 模式确定,除非设计方向将独特性转向 singular(此时根据字体组合的同调字体重新推导)。

  • spacing——以 4pt 为基础的比例;sectionPadding 根据 Phase 1 中标注的密度等级确定(reference/intent-dimensions.md § 4):

    • airy → sectionPadding.desktop: 96px、tablet: 72px、mobile: 48px
    • balanced → sectionPadding.desktop: 64px、tablet: 48px、mobile: 32px ← 品牌语域默认值
    • packed → sectionPadding.desktop: 48px、tablet: 36px、mobile: 24px ← 产品语域默认值

    Agent 不会在此处重新询问密度问题——该等级已在 Phase 1 中确定(当短语未能推动轴向时只询问一次;若未得到回答,品牌语域默认采用 balanced)。 根据标注确定性地选取数值。 硬性下限约束。 当捕获的页面清单显示

    5 个版块或 >2 条受众路径(依据 reference/intent-dimensions.md § 4 →“品牌风格多受众网站的 硬性下限”)时,所有变体(包括差异度最高的变体)的 sectionPadding.desktop 均限制在 ≤ 64px 且 ≥ 40px。如果 Phase 1 在触发条件满足时仍标记为 airy,则在编写令牌前指出这一冲突——“已选择密度层级 airy,但捕获的清单触发了多受众硬性下限;请选择 (a) 覆盖下限(在 direction.md 中设置 density: airy (user-pinned)),或 (b) 接受下限(sectionPadding 上限为 64px)。” 如果用户未回复,默认选择 (b)。

  • components — 4-6 个规范组件(button-primary、 button-secondary、card、input、badge、link),其值 基于提取的品牌表层 componentStyle 填充,并根据方向调整。

使用以下内容编写 DESIGN.json(schemaVersion 2):

  • extensions.colorMeta、typographyMeta、shadows、motion、 breakpoints — 从与 DESIGN.md 相同的来源填充。motion 区块承载风格选择(可在原型阶段应用电影感动效):

    "motion": {
      "register": "arrival | kinetic-display | live-systems | editorial | kinetic-grid",
      "registerRationale": "<one-line citation back to PRODUCT.md Brand Personality trait that selected this register>",
      "easings":   { "entrance": "...", "transition": "...", "expo": "..." },
      "durations": { "enter": <ms>, "stagger": <ms> },
      "parallax":  { "translate": <vh>, "fade": <0-1>, "rangeStart": <%>, "range": <%> }
    }
    

    根据 skills/prototype/reference/motion-registers.md § Selection heuristic 中的风格选择启发式进行选择,并读取已确定的 PRODUCT.md § 品牌个性:

    个性特征(任一匹配)风格
    civic-formal +(institutional 或 place-led)arrival
    signage-led 或 wayfinding-first 或 display-typography-signaturekinetic-display
    operationally-transparent 或 data-led 或 dashboard-registerlive-systems
    editorial 或 slow-paced 或 publication-registereditorial
    product 或 SaaS 或 transactional 或 modular-cataloguekinetic-grid
    (含义模糊/无明确匹配)arrival

    各风格的令牌默认值取自 skills/prototype/reference/motion-registers.md § The five registers;除非用户在意图推理期间提供了覆盖值,否则 direct 会将这些值原样复制到 motion 区块中。registerRationale 字段记录一行理由,供审核者检查选择依据。direct 不会应用动效——动效会在原型阶段通过 --cinematic 应用。direct 仅选择风格。 如果页面重新设计不需要动效,可以不设置 register;之后在电影感原型渲染时会询问,或根据启发式进行选择。

    按变体放置(当 N > 1 个变体时)。 motion 区块应写入特定变体的 DESIGN-<id>.json 文件, 而不是站点级的 DESIGN.json——未设置 register 的变体将以静态方式渲染。参见 reference/multi-variant.md § 按变体放置动效。 当用户的意图短语包含明确的运动方向 (“make it cinematic”“feel alive”“move like signage”)时, direct 会选择对应的表达风格,并在 registerRationale 中将来源记为 "user-phrase: <verbatim>"。

  • extensions.divergence — 根据 divergence-toolkit.md 中的 v2 存储结构 保留完整的审计轨迹。包含忠于品牌的反转日志(参见 reference/direction-format.md § Divergence inputs), 记录保留纯色或十六进制格式的情况。

  • extensions.componentStyle — v1 的抽象字段 (buttons、cards、inputs、dualCTAPattern)。每个组件的 默认处理方式,不包含页面级尺寸或实际文案。

  • extensions.systemComponentRoles — 命名跨页面模式(例如 persistent-help、cta-band、 header、footer)的抽象角色。每个角色都包含用途、位置类别 以及任何全站约束——不包含实际文案、尺寸 或各视口的停靠点(这些属于页面部署,记录在 <slug>-shape.md 中)。

  • extensions.voice — 根据 _brand-extraction.json 中的语气样本和 确定的语调提取的建议做法和禁忌。

  • narrative.northStar、overview、keyCharacteristics、rules、 dos、donts — 根据已确定的方向生成。Toolkit § 7 中的 Optional House Standards 写入此处的 narrative.rules[]。

components[] 中的每个组件 HTML/CSS 代码片段都必须 独立完整,使用 ds- 类名前缀,并遵守 impeccable 的 硬性规则(仅使用 OKLCH,不使用纯黑/纯白、不使用玻璃拟态、不使用 侧条纹、不使用渐变文本;品牌表达风格的字号比例 ≥ 1.25)。

IA 优先级保留审计(模式 A)

撰写完令牌后、将其写入变体 DESIGN 文件之前,按照 reference/intent-dimensions.md § 8 执行 IA 优先级保留审计。对于每个满足 触发条件的已捕获信号(商业转化、搜索主导的 IA、 捐赠漏斗、危机入口、受众分流),在 DESIGN.json 中记录一条 extensions.iaPriorities[]:

[
  {
    "signal": "crisis-affordance",
    "evidence": "pages/home.json#landmarks[hero] contains heading 'Looking for immediate shelter?' + phone 801-990-9999",
    "preserveAs": "first-viewport",
    "scope": "site-wide",
    "mutability": "movable"
  }
]

每条记录都是下游 prototype 和 migrate 必须遵守的约束——如果某个变体的首页形态简报未在首屏中体现危机 入口,则该变体未通过审计,必须予以拒绝。 此审计是 § 8 的结构性保障;没有它,保留 IA 优先级就只是指导原则,而非硬性约定。

mutability 字段反映 Phase 1 中的 ia-fidelity 标记(参见 reference/intent-dimensions.md § 9):在 verbatim 模式下为 locked(变体完全不得调整优先级——A1/A2/A3 是表层分支), 在 reimagined 模式下为 movable(变体可以降低或提高优先级, 也可以调整其部署形态,但仍须满足 § 8 的底线要求)。 该字段仅在 Phase 4 标记一次,是 prototype 读取时的事实来源。

多变体 DESIGN 文件(N > 1 时)

启用 Phase 2.6 时,Phase 4 会写入 PRODUCT.md(共享文件), 以及每个变体各自的 DESIGN-{A,B,C,…}.{md,json},而不是一组 单独的文件;每个变体都会继承共享的 extensions.iaPriorities[] 审计记录。在 rebrand 模式下,PRODUCT.md 也可能因变体而异。 参见 reference/multi-variant.md § Multi-variant DESIGN files。

阶段 5 — 编写 direction.md 并更新状态

按照 skills/direct/reference/direction-format.md 编写 stardust/direction.md。完整记录推理过程:短语、复述、调整、 差距、问题与答案、已确定的维度、分歧输入、拟议的命令 序列、用户确认,以及所有采用默认值的假设。重新确定方向时, 将内容作为新章节追加到文件中;保留先前方向作为历史记录。

更新 stardust/state.json:

  • direction.resolvedAt = 当前时间
  • direction.phrase = 用户的原始短语
  • direction.directionFile = "stardust/direction.md"
  • 对范围内的每个页面:将 status 从 extracted 改为 directed
  • 使用 --re-direct 时,对每个已处于 prototyped / approved / migrated 状态的页面:设置 stale: true,并设置 staleReason: "direction changed at <ts>"。不要更改 状态本身;磁盘上的产物仍然有效,只是与当前方向不一致。

打印一屏摘要报告,并推荐下一步:

direction resolved
==================

Phrase:    "make it more expressive for a young audience"
Audience:  Gen Z college / first-job (resolved via Q1)
Register:  brand (inherited from current/PRODUCT.md)

Movements:
  expressive axis    restrained -> committed
  distinctiveness    familiar  -> distinctive
  tone               serious   -> playful
  density            (unchanged)
  audience           (resolved: Gen Z college / first-job)

Divergence:
  seed         1970s x Riso print x zine x monochrome-tint
  font deck    zine-maximalist
  palette      "Brutalist Dawn" (picked from library)

Wrote:
  PRODUCT.md, DESIGN.md, DESIGN.json
  stardust/direction.md

State:
  25 pages: extracted -> directed
  0 stale prototypes (none exist yet)

Next: $stardust prototype  (defaults to home page)

输出

路径用途
PRODUCT.md目标策略(impeccable 格式)。在模式 A 下,若 N > 1,则各变体共用。
DESIGN.md目标视觉系统(Stitch frontmatter + 6 个章节)。仅用于单变体运行。
DESIGN.json包含扩展项(divergence、componentStyle、voice、iaPriorities)和叙述内容的附属文件。仅用于单变体运行。
DESIGN-{A,B,C,…}.md用户请求 N > 1 个变体时使用的各变体 DESIGN 文件(阶段 2.6 生效)。
DESIGN-{A,B,C,…}.json与 .md 文件对应的各变体 DESIGN 附属文件。
stardust/prototypes/<slug>-improvements.md改进列表(仅模式 A,在阶段 2.5 编写)。这是变体 A 的关键产物。
stardust/direction.md已确定的方向 + 完整推理过程 + N > 1 时各变体的确定结果。
stardust/state.json更新方向、各页面状态变更,以及 N > 1 时的 direction.variantMode + direction.variants[]。

失败模式

  • 未提取到状态。 中止并建议运行 $stardust extract。
  • 经过两次提问后,短语仍然过于含糊。 将部分推理保存到 stardust/direction.md 的 # Pending 部分,要求用户进一步细化;不要根据不完整的推理编写 PRODUCT.md / DESIGN.md / DESIGN.json。
  • 重新定向时已有获批或迁移后的页面。 标记为过时前务必确认。此标记对用户可见,并且可以撤销(成功重新运行 prototype 或 migrate 后会自动清除),但重新定向会使用户可能已签字认可的工作失效。
  • 反工具箱审查移除了过多设计手法。 如果审查剔除无法论证的命中项后,确定的方向退化成默认方案,请告知用户,并在写入 tokens 前重新询问参考锚点。
  • (b) 品牌信号不足以支持 N 个变体。 捕获的界面中可放大的鲜明特征少于 3 个(或为 signal-thin)→ 在 Mode A 下拒绝 N ≥ 3,并建议改为 1–2 个变体;完整约定见 reference/multi-variant.md § Failure mode。
  • (c) 硬性规则冲突。 当 Mode A 处于启用状态,并且用户的短语要求违反 Mode A 的固定要求时(例如,迁移模式下用户要求 “完全不同的调色板”,但没有传入 --rebrand),请停止。明确指出冲突:“你要求保留品牌,同时更改调色板——这两者无法兼顾。你的意思是 (a) 保留当前调色板,只更新执行效果,(b) 重新打造品牌 (--rebrand) 并采用新调色板,还是 (c) 使用 Mode A 对调色板进行定向调整(只为单个角色重新着色,其余保持固定)?” 等待用户明确答复。
  • (d) 改进项列表为空。 如果 Phase 2.5 找到的、达到具体性要求的弱点少于 3 个,请在渲染任何变体前停止。变体 A 的设计说明依赖此列表;没有列表,“更好”的说法便无法成立。坦诚告知用户:“在可观察的维度上,捕获的网站已经达到了合格的执行水平——变体 A 只能调整间距和对比度。” 询问用户是否要 (a) 以缩小后的范围继续(仅调整密度和对比度),(b) 提取更多页面(extract --cap 25 或更高),以发现更多弱点,或 (c) 转为重新打造品牌模式 (--rebrand),该模式不受品牌保真度下限的约束。

准备模式(--prep)

使用 --prep 调用时,direct 会执行扩展流程,完成 migrate 所需的清单数据结构:类型目录确认、模块目录定稿、颜色预留、更全面的方向重新评估,以及站点级元数据默认值。请阅读 reference/prep-mode.md,并在标准流程的基础上遵循其中的说明。探索模式的运行方式不变。

添加变体模式(--add-variant)

当用户已批准(或已渲染)变体 A,并要求添加 B / C 等备选方案时,--re-direct 的改动范围过大——用户是在扩展现有方向,而非更改方向。--add-variant <name> 会跳过 Phase 1–2(沿用当前方向的模式、种子、调色板和基础类别),根据变体角色约定确定新变体的角色,并写入 DESIGN-<name>.{md,json} 以及 direction.md 中的 ## Variant <name> 部分,不会将任何页面标记为过时。请先阅读 reference/add-variant.md,并遵循其中的流程、父子关系与各字段继承规则,以及失败模式,再编写任何内容。

参考资料

  • skills/stardust/reference/intent-dimensions.md — 8 个维度 (7 个维度加上 § 8 IA 优先级保留;当捕获到商业转化、危机或受众引导信号时,将触发 Mode A 约束)。
  • skills/stardust/reference/intent-reasoning.md — 流程。
  • skills/stardust/reference/intent-examples.md — 完整示例。
  • skills/stardust/reference/impeccable-command-map.md — 何时使用各个 impeccable 命令(用于制定计划时)。
  • skills/stardust/reference/reference-research.md — 研究优先的锚定流程(refero MCP → WebSearch → 种子回退),供 Mode B 和默认模式使用;包含证据形式和预算。
  • skills/stardust/reference/divergence-toolkit.md — 反平庸输入,以及审计轨迹的 v2 存储格式。包含多变体操作的反工具箱补充项(C-cliff overshoot、Anonymous middle variant、Variant homogeneity)和通用强化项(Fabricated content、Hero text on photographic background without contrast scrim、Editorial-register vocabulary applied to non-editorial brands)。
  • skills/stardust/reference/artifact-map.md — 溯源格式。
  • reference/direction-format.md — stardust/direction.md 的架构。
  • reference/palette-picker.md — 调色板解析流程。
  • reference/prep-mode.md — --prep 扩展流程(溯源验证、类型/模块目录、颜色预留、元数据)。
  • reference/add-variant.md — --add-variant 流程(步骤、变体从属关系、逐字段继承、失败模式)。
  • reference/multi-variant.md — N > 1 分支:变体角色约定、差异化约定、界面分支、C-cliff。
  • reference/improvements-list.md — Phase 2.5 改进列表的完整示例(类别和格式)。
  • reference/mode-a-plus.md — 有限的品牌相关优化。
  • reference/cross-site-brand-inputs.md — 设计供体和同系列来源的证据规则。

评论

支持 Markdown