Architecture · 2026-04-20架构 · 2026-04-20

The Harness.
Nine components. One rule.
架构蓝图。
九个组件。一条规矩。

The full design of the sky-skills harness — nine generator skills and two evaluators, now nine components (a self-evolution loop, 09, was added). Eight are done; the canonical library (02) just reached the full 59/59 matrix (verified by bin/design-review --coverage); and design-evolve (09) is built but has not run an evolution round yet. /design-loop (06) shipped its first real run — an anthropic security page at critic 92, now the first page in the corpus. Every component must defend one question: what specific model weakness does it correspond to? No weakness, no seat at the table. sky-skills 架构的完整蓝图 —— 九个 生成器 skill 加两个 评审员,现在是九个组件(新增了自进化循环 09)。八个已完成;canonical 库(02)刚补满 59/59 整张覆盖表(用 bin/design-review --coverage 实测);design-evolve(09)机制已建、但还没跑过一轮进化。/design-loop(06)完成首跑——一个 anthropic security 页 critic 92,已是 corpus 第一页。每个组件都必须能回答一个问题:它挡的是模型的哪一个具体弱点?挡不住弱点,就不配留。

See the nine看这九个 What's done today今天做到哪里
Read in another voice用另一种声音读 apple anthropic ember sage glass
Sources指导来源

Two ideas we're building on. 我们站在的两个肩膀。

GAN (Goodfellow et al., 2014) — a generator and a discriminator train adversarially. The sharper the discriminator, the stronger the generator becomes. Our nine design skills are the generator, design-review is the discriminator.

GAN(Goodfellow et al., 2014) —— generator 和 discriminator 对抗训练。discriminator 越锐利,generator 就越强。我们的 9 个设计 skill 是 generator,design-review 是 discriminator。

Anthropic, Harness design for long-running appsplanner / generator / evaluator three-part split, evaluators must be separate, sprint contracts, 5–15 iteration rounds, and the rule we take most seriously: each harness component must correspond to one specific model weakness. Assumptions worth stress-testing, because they may be incorrect or quickly outdated.

Anthropic 的 Harness design for long-running apps —— planner / generator / evaluator 三段式,evaluator 必须独立,sprint contract,5–15 轮迭代。我们最认真对待的一条:每一个 harness 组件都要对应模型的一个具体弱点。这些假设值得压测,因为它们可能不对,或者很快过时。

Agents tend to praise their own work confidently — even when quality is obviously mediocre to a human observer. Separating the agent doing the work from the agent evaluating it is a powerful lever. Agent 倾向于自信地称赞自己的作品 —— 哪怕在人类观察者看来质量明显平庸。把做事的 agent 和评判的 agent 分开,是一个真正的杠杆。

Anthropic — Harness design postAnthropic —— harness-design 文章

Goal目标

What this harness is supposed to deliver. 这个 harness 应该交付什么。

A one-sentence brief becomes a web page that stands next to anthropic.com, stripe.com, linear.app. Not technically bug-freetaste, originality, rhythm, copy, hand-crafted illustrations, device-agnostic, accessible, shareable. 一句话需求,产出能和 anthropic.com / stripe.com / linear.app 同台站着的一张页面。不是"技术上没 bug",而是 有品位、有原创、有节奏、copy 过关、图示手工感强、全设备可用、无障碍、可分享

Nine components九个组件

Every row defends a weakness. 每一行都挡一个弱点。

The only legitimate reason for a harness component to exist is that a specific model weakness makes it necessary. If a reader can argue this weakness isn't real and we can't produce evidence, we remove the component. 一个 harness 组件能存在的唯一理由,是有一条具体的模型弱点要求它存在。如果有人说"这条弱点不成立",而我们拿不出证据,就把这个组件删掉。

4
Done已完成
·
2
Half-shipped发了一半
·
1
Next下一步
·
1
Shipped · untested已发 · 等实战
Done · contract + JSON output已完成 · 合同 + JSON 输出 01

design-planner

skills/design-review/scripts/sprint-contract.mjs + bin/design-review --plan + skills/design-planner/SKILL.md Model weakness对应弱点

Faced with a vague brief, the model fills in training-data medians. Scope drifts. A planner expands the brief into a sprint contract — section list, must-include content, hard constraints — before the generator runs. 面对模糊需求,模型会用训练数据的中位数填空,scope 失控。planner 在生成器动手前,把需求展开成 sprint contract —— 必含 section、必含内容、硬指标。

Done · 59/59 matrix已完成 · 59/59 铺满 02

reference library参考库

skills/<style>-design/references/canonical/ Model weakness对应弱点

Without reference, output regresses to the most average web design. A per-style canonical library of 10 page-types (pricing / landing / docs-home / blog / product / team / comparison / FAQ / changelog / feature-deep) anchors quality at each style's own best — not an industry average. 没有参考,输出就向"最平均的 web 设计"收敛。每个 style 自己的 10 个 page-type canonical 库(pricing / landing / docs / blog / product / team / comparison / FAQ / changelog / feature-deep),把品质锚定在该 style 自己的最好,不是行业平均。

Done · 2026-04-24已完成 · 2026-04-24 03

generator + self-diff生成器 + 自评差异

skills/{apple,anthropic,ember,sage}-design/ Model weakness对应弱点

Models don't naturally articulate their design decisions after writing. Without a required self-diff note, the critic has no concrete target — just vibes. Enforced 2026-04-24 via cross-skill-rules §M + verify.py canonical-self-diff check: every canonical HTML must embed a design-review:self-diff v1 comment block (5+ decisions × [id] chose A over B + known trade-offs). All 14 existing canonicals back-filled from their .md files. 模型写完 HTML 不会自然记录设计决策。没有强制的 self-diff note,critic 没有具体靶子,只能凭感觉评。2026-04-24 正式强制:cross-skill-rules §M + verify.py 的 canonical-self-diff check:每张 canonical 必须 embed design-review:self-diff v1 注释块(5+ 条 [id] chose A over B 决策 + known trade-offs)。14 张现有 canonical 从各自 .md 全部回补完毕。

Done · 38 checks已完成 · 38 项 check 04

mechanical-review

skills/design-review/ Model weakness对应弱点

Models don't self-check runtime behavior — multi-viewport rendering, keyboard navigation, color contrast, LCP/CLS, SEO meta. A mechanical gate catches the class of bugs source-scanning and model self-review both miss. runtime 行为(多视口渲染、键盘可达性、对比度、LCP/CLS、SEO meta)模型自己不会检查。mechanical 检查抓的正是源码扫描和模型自评都抓不到的那一类 bug。

Done · 2026-04-22已完成 · 2026-04-22 05

multi-critic多位专家评审员

.claude/agents/design-{composition,copy,illustration,brand}-critic.md Model weakness对应弱点

Evaluating one's own work tends to produce uniform praise. Even a fresh-context critic has a limited attention budget — one reviewer can't divide it evenly across four orthogonal axes: composition, copy, illustration, brand. Four specialists (weights 25/25/20/30) in fresh contexts + an aggregator. First live run on this page: solo-critic 93, multi-critic 88 — the 5-point gap was the illustration specialist catching a 6th-hue leak inside an SVG the generalist missed. 评审自己的作品会整体说好话。即便 fresh context 的 critic,注意力预算也有限,一个人很难把它均匀分给四个正交维度:版式copy插画品牌。四位专家(权重 25/25/20/30)各自 fresh context + 一位汇总。本页首次实战:单 critic 93,多 critic 88 —— 差的 5 分是插画专家在 SVG 里抓到了通才漏掉的 6 色偷渡。

Done · first run shipped (critic 92)已完成 · 首跑通过(critic 92) 06

/design-loop

.claude/commands/design-loop.md Model weakness对应弱点

Models default to ship the first-pass output. Without orchestration, actual iteration ends after 1–2 rounds. A loop controller forces the planner → generator → review → critic cycle for up to 5 rounds, or escalates to a human. 模型默认"第一版够用就发"。没有外部编排,实际只跑 1-2 轮。loop controller 强制 planner → generator → review → critic 最多 5 轮,超过还过不去就交还给人。

Done · 2026-04-22已完成 · 2026-04-22 07

learning-loop

.claude/agents/design-learner.md + scripts/learning-loop.mjs Model weakness对应弱点

Models don't automatically archive "the new issue the critic caught today." Without this loop, the same bug class keeps being caught by humans. design-learner reads critic verdicts (solo or multi) and proposes three codifications: new rows in known-bugs.md, new mechanical checks in visual-audit.mjs, per-skill dos-and-donts entries. First live run 2026-04-22: 13 raw verdict issues → 5 unique bug classes → 3 new known-bugs (1.17/1.18/1.19) + 1 new visual-audit check (figure-no-caption) + 8 dos-and-donts rows. Human-in-the-loop — agent proposes; human applies. 模型不会自动归档"critic 今天新抓到的问题"。没有这个环节,同一类 bug 会反复被人抓到。design-learner 读 critic 的 verdict(单/多),提三件事:known-bugs.md 新行、visual-audit.mjs 新机器 check、每 skill 的 dos-and-donts。首次实战 2026-04-22:13 条原始 issue → 5 类 bug → 新 3 行 known-bugs(1.17/1.18/1.19)+ 1 个新机器 check(figure-no-caption)+ 8 条 dos-and-donts。human-in-the-loop —— agent 提,人审完 apply。

Built · awaiting corpus data已建 · 等 corpus 数据 08

library-grower

skills/design-review/scripts/library-grower.mjs Model weakness对应弱点

Models can't self-organize yesterday's good output into tomorrow's reference. Without this, the canonical library stays fixed and becomes stale over 6 months. Five successful outputs of a page-type → auto-distilled into a new canonical (candidate.html + diffs.md), reviewed by a human, merged. /design-loop deposits each ≥88 ship into the corpus via --deposit. 模型没有"把昨天的好产物整理成明天参考"的能力。没有它,canonical library 会固定,6 个月后就开始过期。同一 page-type 攒 5 次优秀产物 → 自动蒸馏成新 canonical(candidate.html + diffs.md),人审核通过后并入。/design-loop 每次 ≥88 上线都用 --deposit 把页喂进 corpus。

Built · no round yet机制已建 · 未跑 09

design-evolve

skills/design-evolve/SKILL.md Model weakness对应弱点

Models repeat the same taste mistakes and can't tell which of their own rules actually help. A Darwin / autoresearch ratchet: mutate one generator rule, regenerate, score with the frozen evaluator, keep it only if it strictly beats the baseline with no held-out canonical regressing. Selection, not authorship — the system improves its own rules without being able to cheat the test. EvolveR scoring prunes dead rules; a held-out regression gate blocks overfit. 模型会重复同样的审美错误,也分不清自己哪条规则真有用。一个 Darwin / autoresearch 式爬坡:改一条生成器规则、重新生成、用冻结的评审器打分,只有严格超过基线且无 held-out canonical 变差才保留。由选择而非作者决定 —— 系统能改进自己的规则,又没法在测试上作弊。EvolveR 成功率裁剪失效规则;held-out 回退门挡过拟合。

Where it stands当前进度

Nine components, by status. 九个组件,按当前状态。

The pipeline is built end-to-end, in the order hard dependencies allowed. What's left isn't new machinery — the canonical library (02) just reached its full 59/59 matrix, so all that remains is one first run (09, design-evolve, yet to attempt an evolution round). 管线已端到端建好,顺序由硬依赖决定。剩下的不是新机器 —— canonical 库(02)刚补满 59/59 整张覆盖表,只剩一次首跑(09 design-evolve 还没试过一轮进化)。

DONE · 7 JUST COMPLETED · 1 BUILT · NO ROUND YET · 1 Done · the pipeline is built 01 planner sprint-contract + --plan 03 generator self-diff §M + verify.py gate 04 mechanical-review 51 checks · 94 known-bugs 05 multi-critic 4 subagents + solo critic 06 /design-loop ✓ ran · critic 92 first real end-to-end run 07 learning-loop · 08 library-grower design-learner · distill 5+ → candidate Just completed 02 canonical library 58 / 58 page-types covered matrix complete — 10 page-types × anthropic / apple / ember / sage + 18 more run --coverage for the live count Built · no round yet 09 design-evolve Darwin / autoresearch ratchet, wired: evolve-ledger.mjs evolve-rules.mjs regression-gate.mjs rules.json empty · 0 rounds run ledger = the loop's first-run deposit when it runs, the evaluator stays frozen
The harness at a glance — eight components done, the canonical library (02) now complete at the full 59/59 matrix, and design-evolve (09) wired end-to-end but yet to run its first evolution round. When it does, the evaluator stays frozen so a mutation can only win on merit. harness 全貌 —— 八个组件已完成,canonical 库(02)已补满 59/59 整张覆盖表,design-evolve(09)已端到端接线但还没跑过第一轮进化。真跑时评审器保持冻结,变异只能凭真本事赢。
Hard constraint硬约束

The harness must not flatten the nine voices. harness 越复杂,越怕把 9 种声音抹平。

The most dangerous failure mode is that as we build more shared layers, the 9 styles start producing outputs that all look the same. The rule below makes that mechanically impossible: universal rules never judge style; style rules live in per-style folders; critic's taste is anchored to each style's own canonical. 最危险的失败模式:共享层越多,9 个风格的产出越趋同。下面这条规矩让这件事在机制上不可能发生 —— universal 规则从不评判风格,风格规则住在各自的文件夹,critic 的品味锚定在每个 style 自己的 canonical。

Layer Where it lives住在哪 Flattens the voices?会抹平声音吗
Universal quality通用质量 skills/design-review/references/cross-skill-rules.md No不会
Only judges does it work (contrast, placeholders, SVG balance). Doesn't touch what a style should look like.只管"能不能用"(对比度、占位符、SVG 平衡),不管"该是什么样"
Cross-skill bugs跨 skill bug 清单 skills/design-review/references/known-bugs.md No不会
Already segmented into per-style sections. Orange-CTA bug lives in the anthropic section, sage-green contrast in the sage section.按分节组织。橙 CTA 在 anthropic 节,sage 绿对比度在 sage 节
Style canonicalsstyle canonical 例子 skills/<style>-design/references/canonical/ Strengthens them反过来强化
Apple pricing and sage pricing look nothing alike. The libraries are never shared, never copied across styles.apple pricing 和 sage pricing 长得完全不一样。9 个 library 不互抄、不共享、不跨 style 引用
Style personality风格个性 skills/<style>-design/references/dos-and-donts.md Strengthens them反过来强化
Palette, fonts, signature moves — all per-style.色板、字体、签名动作 —— 全是各自的
Critic's tastecritic 的品味 Subagent prompt reads this style's canonical + dos-and-dontssubagent prompt 里读 当前 style 的 canonical + dos-and-donts No不会
Critic always asks is this a good <style> page? — not is this good in the abstract? The standard moves with the style.critic 永远问"这是不是一张好的 <style> 页",不是"是不是绝对意义上好"。标准跟着 style 走
Status · 2026-06-11今天 · 2026-06-11

What's real. What's next. 哪些是真的。下一步做什么。

Done 8 (incl. 02 library) · Built-no-round 1 (09)已完成 8(含 02 库) · 机制已建未跑 1(09)

What's actually done 实际已完成

Eight components done (01 / 02 / 03 / 04 / 05 / 06 / 07 / 08); 02 (canonical library) reached the full 59/59 matrix. (06) /design-loop shipped its first real end-to-end run — an anthropic security page at critic 92, now the first page in the corpus. (09) design-evolve — the Darwin / autoresearch self-evolution ratchet (mutate one rule, regenerate, score with the frozen evaluator, keep only if measurably better and no held-out canonical regresses) — is built but has not run an evolution round yet: rules.json is empty and the ledger holds only the loop's first-run deposit. (04) mechanical critic — 38-check visual-audit.mjs (brand-presence / italic-overuse / cross-skill-smell / hollow-card / asymmetric-first-col-hero / svg-foreign-hex / figure-no-caption, via pngjs) + 94 known-bugs catalogued; (01) sprint-contract — planner phase 1 — shipped as sprint-contract.mjs + bin/design-review --plan, contract schema still growing; skills/design-planner/SKILL.md (brief→contract guidance) + LOW-CONFIDENCE fallback for canonical-less page-types shipped 2026-06-11; (05) multi-critic — 4 critic subagents in parallel (composition / copy / illustration / brand, weighted 25/25/20/30) + solo design-critic; (07) learning-loopdesign-learner reads verdicts and proposes known-bugs rows + new mechanical checks. 59/59 canonical page-types covered — the full matrix — 10 page-types × anthropic / apple / ember / sage, 5 for atelier, 4 for glass, 3 each for eclat, lectern and primer (a keynote has no pricing page, a board deck has no landing, an application has no hero; the matrix is ragged by design); matrix complete. A second independent evaluator ships as skill 11: gated-dual-clone-audit (4 tiers, paired with skill 10 generator) — same generator/evaluator split principle, different domain. Dated increments since 2026-04-27 — v2/v3 features, new gates, new skills — live in the changelog below. 已完成 8 个组件(01 / 02 / 03 / 04 / 05 / 06 / 07 / 08);02(canonical 库)已补满 59/59 整张覆盖表。(06) /design-loop 完成首次端到端实战 —— 一个 anthropic security 页 critic 92,已是 corpus 第一页。(09) design-evolve —— Darwin / autoresearch 式自进化爬坡(改一条规则、重新生成、用冻结评审器打分,只有可度量更优且无 held-out canonical 变差才保留)—— 机制已建、但还没跑过一轮进化rules.json 为空,ledger 里只有 loop 首跑的落库记录。(04) 机器 critic —— 51 项 visual-audit.mjs(brand-presence / italic-overuse / cross-skill-smell / hollow-card / asymmetric-first-col-hero / badge-not-referenced / series-viewbox-drift,用 pngjs)+ 94 条 known-bugs;(01) sprint-contract —— planner 期 1,已发(sprint-contract.mjs + bin/design-review --plan),contract 字段还在扩;skills/design-planner/SKILL.md(brief→contract 指南)+ 无 canonical 类型的 LOW-CONFIDENCE 回退已于 2026-06-11 上线;(05) multi-critic —— 4 位 critic subagent 并行(版式 / 文案 / 插画 / 品牌,权重 25/25/20/30)+ 单 design-critic(07) learning-loop —— design-learner 读 verdict 自动给出 known-bugs 行 + 新机器 check 建议。覆盖 59/59 canonical page-type —— 整张覆盖表 —— 10 个 page-type × anthropic / apple / ember / sage,atelier 6 个,glass 4 个,eclat、lectern、primer 各 3 个(发布会没有定价页,董事会 deck 没有落地页,应用没有 hero;这张表本就是不规则的);覆盖表铺满。第二个独立 evaluator 作为第 11 个 skill 落地:gated-dual-clone-audit(4 tier,配对第 10 号 generator)—— 相同的 generator/evaluator 分离原则,不同领域。2026-04-27 起的日期增量(v2/v3 特性、新检查、新 skill)见下方 changelog

Done · canonical complete已完成 · canonical 铺满

59 / 59 canonical pages 59 / 59 张 canonical

Complete — all 59 shipped, atelier (6) and primer (3) included; verify with bin/design-review --coverage. Each page: full .html + binding .md design-decisions file, all passing verify.py + visual-audit.mjs + screenshot.mjs 0-warning and a --multi-critic pass. They were built 1–2 per focused session — never rushed, to protect the library's reference quality. 已完成 —— 全部 59 张交付,含 atelier 6 张与 primer 3 张;实时计数见 bin/design-review --coverage。每张:完整 .html + 绑定的 .md 设计决策文档,全部过 verify.py + visual-audit.mjs + screenshot.mjs 0 warning 并过 --multi-critic。每个专注 session 做 1–2 张,从不赶工,护住 library 的参考水准。

Shipped · loop's first run passed已发 · loop 首跑通过

planner → /design-loop → library-grower planner → /design-loop → library-grower

Three components in dependency order, now all built (2026-06-14): (01) planner expands a brief into a sprint-contract — shipped with --format=json so the loop reads acceptance criteria machine-readably. (06) /design-loop orchestrates planner → generator → review → critic for up to 5 rounds — a deterministic driver (design-loop.mjs) now owns the round counter, the ≥88 ship gate, and deposit-on-ship; its first real end-to-end run shipped an anthropic security page at critic 92. (08) library-grower distills 5+ same-type pages into a candidate (candidate.html + diffs.md), fed by the loop's --deposit. And the line now closes with a 9th: (09) design-evolve, which optimizes the generators' own rules against the frozen evaluator — mechanism built 2026-06-14, awaiting its first evolution round. 三个组件按依赖顺序,现在都已建(2026-06-14):(01) planner 把需求展开成 sprint-contract —— 已加 --format=json,loop 可机读验收标准。(06) /design-loop 编排 planner → generator → review → critic 最多 5 轮 —— 确定性 driver(design-loop.mjs)现在管轮数计数、≥88 ship 门、上线落库;首次端到端实战已通过——anthropic security 页 critic 92。(08) library-grower 把 5+ 张同类页蒸馏成候选(candidate.html + diffs.md),由 loop 的 --deposit 喂数据。这条线现在以第 9 个收尾:(09) design-evolve,对着冻结评审器优化生成器自己的规则 —— 机制已建(2026-06-14),等第一轮进化。

Changelog增量记录

Dated increments, newest first. 按日期的增量,新的在前。

2026-06-15

Harness goes global · runs from any directory harness 全局化 · 任意目录可跑

All 23 skills — plus the harness's slash-commands (/design-loop, /design-distill, /gdc-audit-critic) and six critic subagents — now install globally under ~/.claude/. The whole design harness runs from any repository: ask in natural language or type the slash command, and the generator self-reviews through a CWD-independent launcher (~/.claude/skills/design-review/dr-cli) that locates its own engine no matter where it is called. The CLI's self-location was hardened with readlink -f; reference paths now anchor to the install location instead of the repo root; and the contract no longer writes to /tmp (read from stdout, or written beside the output). The engine was already CWD-independent — only the instruction text had assumed you stood inside the repo. 全部 23 个 skill —— 加上 harness 的斜杠命令(/design-loop/design-distill/gdc-audit-critic)和六个 critic subagent —— 现在都装到 ~/.claude/ 全局生效。整套设计 harness 在任意仓库都能跑:自然语言提问或敲斜杠命令,生成器通过一个与当前目录无关的入口(~/.claude/skills/design-review/dr-cli)自评审,无论在哪调用都能定位自己的引擎。CLI 自定位用 readlink -f 加固;引用路径锚到安装位置而非仓库根;合约不再写 /tmp(从 stdout 读,或写在输出文件旁)。引擎本来就与目录无关 —— 只是指令文本之前假设你站在仓库里。

2026-06-11

diagram-craft v3 · Wave 2 gates · design-planner ships diagram-craft v3 · Wave 2 检查 · design-planner 上线

diagram-craft v3 — a genealogy of seven kernel diagram types (§15: block / flowchart / timing-waveform / register-bitfield / ring-buffer / pipeline / scheduler-timeline) and constraints split into three layers: aesthetics immutable, quality machine-gated, structure free to customize. Known-bugs 1.28–1.31 codified into 5 new visual-audit.mjs gates; sprint-contract gains a §1b diagram-density rule; template library grown to anthropic 14 / apple 14 pieces; two diagram galleries shipped (anthropic 23 diagrams, apple 14); gold accent corrected cross-skill from #c49464 to #c9913f. Wave 2: visual-audit grows keyboard-a11y + LCP/CLS perf gates (26 checks); verify.py gains a warn tier with SEO meta checks; --audit reports per-kind stats; --distill wired (component 08); design-planner ships as the 13th skill (component 01). Later the same day, diagram-craft reaches the remaining two generators: ember-design and sage-design each gain a diagram-craft.md + 8 diagram templates + an 8-figure gallery, and the diagram-monochrome gate now applies to anthropic / ember / sage (apple stays exempt — grayscale is its identity). diagram-craft v3 —— 内核七图型谱系(§15:框图 / 流程图 / 时序波形 / 寄存器位域 / 环形缓冲 / 流水线 / 调度时间线)+ 约束三层化(审美不可变 / 质量机器检查 / 结构自由定制)。known-bugs 1.28–1.31 写成 visual-audit.mjs 5 个新检查;sprint-contract 新增 §1b 图密度条款;模板库扩到 anthropic 14 件 / apple 14 件;双 diagram gallery 上线(anthropic 23 图、apple 14 图);金主色 cross-skill 修正:#c49464#c9913f。Wave 2:visual-audit 新增 keyboard 可达性 + LCP/CLS 性能检查(26 项 check);verify.py 新增 warn 档并带 SEO meta 检查;--audit 输出按 kind 统计;--distill 接线完成(组件 08);design-planner 作为第 13 个 skill 上线(组件 01)。同日收尾:diagram-craft 补齐剩下两个 generator —— ember-designsage-design 各得 diagram-craft.md + 8 件图示模板 + 8 图 gallery;diagram-monochrome 检查归属定为 anthropic / ember / sage 生效,apple 凭灰阶身份豁免。

2026-05-22

anthropic-design v3 · md rendering four-piece pipeline anthropic-design v3 · md 渲染四件套

anthropic-design v3 — four-piece md rendering pipeline under scripts/: md-mirror (1 .md → 1 anthropic-styled .html with inline CSS), md-rewrite-links (in-place *.md*.html href swap), md-pack (fold linked .md into a flat _md/ subdir + retarget hrefs + basename rescue for ../ typos in source markdown), cross-link-pack (fold cross-dir sibling .html into the same _md/). Goal: an anthropic-styled doc directory that survives cp -r anywhere with every link intact. Field-tested same day on a 4-HTML / 13-md / 124-link doc set. anthropic-design v3 —— scripts/ 下 4 件套 md 渲染管线:md-mirror(1 .md → 1 anthropic 风格 .html,内联 CSS)/ md-rewrite-links(原地 *.md*.html href 替换)/ md-pack(把链到的 .md 折叠到扁平 _md/ 子目录 + 重写 href + basename 救援源文档 ../ typo)/ cross-link-pack(跨目录 sibling .html 也折叠进同款 _md/)。目标:anthropic 风格的文档目录 cp -r 到任何地方所有跳转依然有效。同日实测一份 4-HTML / 13-md / 124-链 的文档集。

2026-04-27

anthropic-design v2 · --audit batch mode · doc-review-loop anthropic-design v2 · --audit 批量模式 · doc-review-loop

anthropic-design v2 — scenario recipes (M1-M10 motion / L1-L10 layout / C1-C11 components) + references/ux-writing.md (CTA / empty / error / placeholder copy + banned-word list) + 11 new recipe classes / 6 keyframes / 4 utility animation classes in assets/anthropic.css. bin/design-review --audit batch mode (file / directory / URL inputs, no exit-on-error, markdown + json reports). 12th skill: doc-review-loop — independent writer/reviewer harness for serious decision documents. Not a design-harness component; it's the iteration pattern of component 06 /design-loop applied to docs — a working proof-of-concept that the loop pattern survives reality. anthropic-design v2 —— scenario recipes(M1-M10 动效 / L1-L10 版式 / C1-C11 控件)+ references/ux-writing.md(CTA / empty / error / placeholder 文案 + 禁用词清单)+ 11 个新 recipe class / 6 keyframes / 4 utility animation class,全部入 assets/anthropic.cssbin/design-review --audit 批量模式(file / directory / URL 输入,不在错误时 exit,输出 markdown + json 报告)。第 12 个 skill:doc-review-loop —— 给认真决策书的独立 writer/reviewer harness。不是 design-harness 组件,是 组件 06 /design-loop 的迭代模式落到文档场景的实证 —— 证明 loop 模式可以从原理走到生产。

The three voice variants (apple / ember / sage) are updated in the same PR as this document. 三个 voice 变体(apple / ember / sage)随主文档同一个 PR 更新。

Rules for changing this document修改本文档的规矩

How this doc stays honest. 这份文档怎么保持诚实。

  • Adding a component — must state the specific model weakness it defends. No weakness, no seat.
  • 新增组件 —— 必须写清它挡的是模型的哪一个具体弱点。挡不住弱点,没位置
  • Removing a component — must present evidence the weakness no longer applies. Vibes aren't evidence.
  • 删除组件 —— 必须给出证据,证明那条弱点已经不成立。感觉不算证据
  • After every real page — update the Status today section. If the harness caught a bug class we hadn't catalogued, append to known-bugs.md and add a check.
  • 每跑完一张真实页 —— 同步"今天"这一节。如果抓到一个新 bug 类,同时追加到 known-bugs.md + 加一个 check
  • If the harness drifts — flattens the nine voices, produces noise that trains evaluators to ignore warnings, gives the generator a way to game the test — write a new Historical lessons entry.
  • 如果 harness 跑偏 —— 抹平 9 种声音、产生让评审员习惯跳过的噪音、给 generator 作弊空间 —— 追加一条"历史教训"
Historical lessons历史教训

Things we were wrong about, written down so we don't repeat them. 我们曾经搞错的事,写下来避免再犯。

2026-04-20

Simplicity first is a heuristic, not a hard rule. "simplicity first" 是经验法则,不是硬规则。

While designing this roadmap, I (Claude) once argued for cutting 8 components to 5, citing the article's simplicity first principle. The user correctly pushed back: Why not 8 again? The article's actual hard rule isn't fewer is better — it's every component must correspond to a specific model weakness. The retreat was unwarranted and I restored all 8. Lesson: when tempted to cut a component, the only valid argument is evidence that the weakness it defends doesn't exist. Heuristic shortcuts are how real weaknesses go undefended. 写这份 roadmap 时,我(Claude)曾经引用文章里 "simplicity first" 把 8 组件砍到 5。用户正确地反问"为什么又不是 8 了"。文章真正的硬规矩不是"越少越好",是"每个组件对应一个具体弱点"。那次退让没有依据,我恢复了 8 个。教训:想裁一个组件时,唯一有效的理由是证据表明它挡的弱点不存在。走捷径裁组件,就是把本该挡住的弱点放开了。

Contribute参与

Think a component is wrong? Missing? Misranked? 觉得某个组件不对?漏了?顺序错了?

The document rules above apply to outside contributors too. Argue with evidence. We'd rather restructure the harness than keep a component that isn't really doing anything. 上面的文档规矩对外部贡献者同样适用。用证据讲话。我们宁愿重构 harness,也不愿让一个其实没挡任何东西的组件继续占位。

Open a discussion开一个 discussion File an issue提一个 issue Back to sky-skills返回 sky-skills