web-proto-brutalist
Swiss industrial-print style: monolithic grotesque typography, giant numbers, and ASCII ornaments
1How It Works & Mechanism
This skill is not an executable program, but rather a "template" for html-anything: a directory (SKILL.md + example.html[/example.md]) scanned and read from disk at runtime by loader.ts—adding a new template simply means adding a new directory without modifying any TypeScript code.
Adding a template = adding a folder. No TS code change required; the API
The frontmatter provides metadata for the selector/API (zh_name/en_name/emoji/description/category/scenario/aspect_hint/featured/recommended/tags) and is mapped to SkillMeta via fmToMeta(); only the body text following the frontmatter serves as the specification for the model.
zhName: fm.zh_name ?? fm.name ?? id,
During generation, this template body is used as the prompt body: /api/convert uses assemblePrompt() to concatenate "global design directives + this template's body + user content" into a single prompt, which is fed to the host's local agent CLI, and HTML is captured via stdout streaming.
prompt = assemblePrompt({ body: skill.body, content, format });
A block of global shared directives (SHARED_DESIGN_DIRECTIVES) precedes the template body, uniformly prepending technical and content disciplines to every template—the external CDN and font links commonly found in example HTML originate here (injected by the host shell, not requested by the template itself).
通过 CDN 引入 Tailwind v3 Play (https://cdn.tailwindcss.com) 与所需的 Google Fonts。
Artifacts are returned as stdout text: global directives explicitly forbid the agent from using the file system, and persisting files to disk is handled by the frontend—consequently, the template directory contains no scripts and has no disk-writing capabilities.
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。
example.html is a pre-rendered example bundled with the package: /api/templates/<id>/preview returns it as-is with text/html to an iframe (for inline preview in the selector), while /api/templates/<id>/example returns both example.md and example.html together.
return new Response(skill.exampleHtml, {
The body defines the style through four verifiable aspects: a newsprint canvas with hairline grid dividers, monolithic black grotesque headings, viewport-bleeding giant numbers, and hazard-red accent colors with ASCII ornaments.
- Newsprint canvas + hairline grid dividers
The example solidifies the style into a set of design tokens using CSS variables: --paper #F4F4F0 (newsprint), --hazard #E61919, Archivo Black for display, and JetBrains Mono for meta.
--hazard: #E61919;
The example's hazard color is used for structural separation (hr.hazard and the 1px top border of meta-row) rather than decorative accents.
hr.hazard { border: 0; border-top: 1px solid var(--hazard); margin: 0; }
The example achieves an ASCII-style decorative frame using bracket borders (.ascii-frame::before content: '[' / ::after content: ']') instead of the box-drawing characters like ┌─┘ illustrated in the body.
.ascii-frame::before { content: '['; color: var(--hazard); }
On the CLI side, there is an additional keyword direct-matching path: skills-matcher.ts maps keywords in user content directly to this template id; a hit scores confidence = hit count * 2 + 3, and reaching the threshold of 3 triggers local rules without asking the model to select a template.
[["brutalist", "工业", "粗野", "swiss", "industrial print"], "web-proto-brutalist"],
Threshold constants used for CLI fallback matching: content length must exceed 60 characters to enable AI summary matching; the strong signal threshold is 3.
const MIN_CONTENT_LENGTH_FOR_AI = 60;
The host shell renders examples and artifacts using an iframe with sandbox="allow-scripts allow-same-origin" (allowing scripts and same-origin access)—this is an architectural trade-off of the product shell, documented as a risk, and does not affect the evaluation of this skill.
sandbox="allow-scripts allow-same-origin"
2Core Capabilities
3External Dependencies
| Kind | Dependency / Endpoint |
|---|---|
| network | Google Fonts(Archivo Black / Archivo / JetBrains Mono) |
| network | Google Fonts 静态资源域(preconnect) |
4Recommended Governance & Evidence
- SKILL.md: Pure prompt directives and rule text, without script execution or external side effects
5Second-Pass Verification
- [ok] skill 目录文件清单 — find 得 SKILL.md + example.html,无 scripts/references。
- [ok] 无脚本执行 — grep -c "<script" example.html = 0。
- [ok] 外部端点仅字体 — example.html 仅 fonts.googleapis.com css2 与 fonts.gstatic.com preconnect;SKILL.md 正文无 URL。
- [discrepancy] ASCII 装饰的具体字符 — SKILL.md 写「ASCII 装饰 (┌─┘ 等)」,示例无 ┌/─/┘ 命中,改用 .ascii-frame 的 [ ] 方括号;属实现变体,语义(机械式框架标记)一致。
- [ok] hazard 色是否真结构性使用 — --hazard 用于 hr.hazard 分隔线、.brand sup、.meta-row b、.ascii-frame 伪元素、.abstract 标签等结构位置,非纯点缀。
- [ok] CLI 匹配器路由 — cli/src/skills-matcher.ts 存在 [["brutalist", "工业", "粗野", "swiss", "industrial print"], "web-proto-brutalist"] 行。
- [ok] 判级 green 自证 — 目录零脚本文件、零凭证、零写盘;正文无运行时接口,端点仅见示例 → green。
- [ok] official_desc 逐字 — meta.official_desc 取自 frontmatter description 原文「Swiss industrial-print 风: 单字 grotesque、巨数字、ASCII 装饰」。
6Verdict & Scenarios
aa6036af392f1c58…