Not in the top 1,000 by GitHub stars

docsor1212/aesthete-agent

Mechanically validated frontend aesthetics for AI agents: 89-palette evidence library, OKLCH generation, WCAG/APCA contrast, color-blind-safe data colors, AI-slop detection, theme packs, W3C design tokens. Skill + MCP server.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

1ebb86937ba5 → 1ebb86937ba5

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1ebb86937ba5

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 1ebb86937ba511c1e769f65f44f1992aeac4d68f

0GitHub stars
0stars in 7 days
1skill in this repository
44commits in 30 days

Heat

1.7
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 25, 20260

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

aesthete-agent

When your agent uses it

Color palette generation, frontend aesthetics, UI color schemes — mechanically validated color output for UI/HTML, SVG slides, video covers, charts and posters. An 119-palette evidence library matched by register, OKLCH harmony generation, luminance ramps and image extraction; 60-30-10 role mapping with semantic colors; a 5-dimension scorecard plus WCAG contrast, color-blind simulation and AI-slop detection as four mechanical gates; card and six-scene visualizer previews; a preference-learning profile that evolves with every verdict. Named theme packs, full contrast matrices, CB-safe data-viz palettes, five-lens critique reports, and APCA (WCAG 3 draft) perceptual contrast included. Pure stdlib, offline. Skip when pure text layout, translation or polishing, copywriting, or any task unrelated to color and frontend aesthetics. Trigger words — color palette, color scheme, palette generation, frontend aesthetics, UI color, design aesthetics, hex, contrast, WCAG, color blind, visual taste, aesthete-agent.

What it loads into context

Frontmatter

231 tokens

Always available to the agent

SKILL.md

4,563 tokens

When the skill is activated

Reference documents

34,888 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Capability × Boundary Quick Reference
  2. Six-Step Method
  3. Verdict write-back & customization
  4. Reference docs (30-second routing)
  5. Selection methodology

Scripts executed separately

  • mcp/server.py
  • scripts/_showcase_scenes.py
  • scripts/build_library.py
  • scripts/chart_kit.py
  • scripts/color_director.py
  • scripts/exemplar_kit.py
  • scripts/font_kit.py
  • scripts/layout_recipes.py
  • scripts/lint_page.py
  • scripts/loop_kit.py
  • scripts/make_cjk_subset.py
  • scripts/make_exemplars.py
  • scripts/make_variants.py
  • scripts/narrate_kit.py
  • scripts/page_audit.py
  • scripts/palette_forge.py
  • scripts/qc_kit.py
  • scripts/render_probe.js
  • scripts/scaffold_kit.py
  • scripts/scene_kit.py
  • scripts/token_sheet.py
  • scripts/type_kit.py
  • tests/__init__.py
  • tests/test_v00202.py
  • tests/test_v00300.py
  • tests/test_v00400.py
  • tests/test_v00500.py
  • tests/test_v00501.py
  • tests/test_v00600.py
  • tests/test_v00601.py
  • tests/test_v00700.py
  • tests/test_v00800.py
  • tests/test_v00900.py
  • tests/test_v01000.py
  • tests/test_v01100.py
  • tests/test_v01200.py
  • tests/test_v01300.py
  • tests/test_v01400.py
  • tests/test_v01500.py
  • tests/test_v01600.py
  • tests/test_v01700.py
  • tests/test_v01800.py
  • tests/test_v01900.py

Files

  • .gitignoreasset25 bytes
  • LICENSEasset1,063 bytes
  • README.mddoc9,625 bytes
  • README.zh-CN.mddoc9,196 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • SKILL.mdcore19,504 bytes
  • assets/fonts/README-OFL.txtdoc263 bytes
  • assets/fonts/serif-black-common500.woff2asset126,764 bytes
  • assets/fonts/serif-black-headline.woff2asset8,540 bytes
  • assets/icon-512.pngasset2,025 bytes
  • docs/demo/card.htmlasset4,656 bytes
  • docs/demo/showcase.htmlasset90,107 bytes
  • docs/demo/user_palettes.jsonasset5,804 bytes
  • docs/demo/visualizer-dark.htmlasset17,687 bytes
  • docs/demo/visualizer-light.htmlasset17,687 bytes
  • docs/fonts/cjk-title-black.woff2asset22,992 bytes
  • docs/fonts/cjk-title-bold.woff2asset24,108 bytes
  • docs/img/card.pngasset49,037 bytes
  • docs/img/hero-scenes.pngasset239,072 bytes
  • docs/img/showcase-dashboard.pngasset197,406 bytes
  • docs/img/showcase-ecom.pngasset228,610 bytes
  • docs/img/showcase-editorial.pngasset246,853 bytes
  • docs/img/showcase-hero.pngasset249,577 bytes
  • docs/img/showcase-landing.pngasset248,070 bytes
  • docs/img/showcase-mobile.pngasset201,473 bytes
  • docs/index.htmlasset21,486 bytes
  • examples/example-kd-teaching-page.htmlasset9,898 bytes
  • glama.ymlasset1,029 bytes
  • mcp/README.mddoc1,874 bytes
  • mcp/pyproject.tomlasset1,515 bytes
  • mcp/server.pyruns21,200 bytes
  • palettes/palettes.jsonasset56,927 bytes
  • palettes/themes.jsonasset9,546 bytes
  • profile.jsonasset1,849 bytes
  • references/anti-slop.mddoc3,440 bytes
  • references/cjk-typography.mddoc5,295 bytes
  • references/color-theory.mddoc5,868 bytes
  • references/craft-rules.mddoc2,937 bytes
  • references/critique.mddoc7,140 bytes
  • references/curation.mddoc3,175 bytes
  • references/data-viz.mddoc2,387 bytes
  • references/design-techniques.mddoc10,121 bytes
  • references/exemplars/blueprint-dark.htmlasset10,615 bytes
  • references/exemplars/dark-four-act-dark.htmlasset18,335 bytes
  • references/exemplars/edit-split-light.htmlasset14,146 bytes
  • references/exemplars/editorial-mag-light.htmlasset12,013 bytes
  • references/exemplars/swiss-poster-light.htmlasset7,618 bytes
  • references/expressive-design.mddoc4,383 bytes
  • references/harvest-playbook.mddoc4,643 bytes
  • references/layout-composition.mddoc15,930 bytes
  • references/render-loop.mddoc2,043 bytes
  • references/responsive.mddoc4,782 bytes
  • references/typography-aesthetics.mddoc6,303 bytes
  • references/typography-system.mddoc6,454 bytes
  • rgb.narration.mddoc1,494 bytes
  • scripts/_showcase_scenes.pyruns47,369 bytes
  • scripts/build_library.pyruns6,259 bytes
  • scripts/chart_kit.pyruns7,662 bytes
  • scripts/color_director.pyruns17,981 bytes
  • scripts/exemplar_kit.pyruns4,453 bytes
  • scripts/font_kit.pyruns4,655 bytes
  • scripts/layout_recipes.pyruns34,362 bytes
  • scripts/lint_page.pyruns6,682 bytes
  • scripts/loop_kit.pyruns3,686 bytes
  • scripts/make_cjk_subset.pyruns4,489 bytes
  • scripts/make_exemplars.pyruns3,080 bytes
  • scripts/make_variants.pyruns6,208 bytes
  • scripts/narrate_kit.pyruns4,147 bytes
  • scripts/page_audit.pyruns25,013 bytes
  • scripts/palette_forge.pyruns128,033 bytes
  • scripts/qc_kit.pyruns7,705 bytes
  • scripts/render_probe.jsruns3,150 bytes
  • scripts/scaffold_kit.pyruns21,507 bytes
  • scripts/scene_css.cssasset18,285 bytes
  • scripts/scene_kit.pyruns3,784 bytes
  • scripts/token_sheet.pyruns9,906 bytes
  • scripts/type_kit.pyruns6,764 bytes
  • scripts/user_palettes.jsonasset5,804 bytes
  • smithery.yamlasset318 bytes
  • tests/__init__.pyruns1 bytes
  • tests/fixtures_colorlab.jsonasset10,302 bytes
  • tests/test_v00202.pyruns4,803 bytes
  • tests/test_v00300.pyruns7,007 bytes
  • tests/test_v00400.pyruns100 bytes
  • tests/test_v00500.pyruns5,018 bytes
  • tests/test_v00501.pyruns100 bytes
  • tests/test_v00600.pyruns100 bytes
  • tests/test_v00601.pyruns100 bytes
  • tests/test_v00700.pyruns8,122 bytes
  • tests/test_v00800.pyruns6,068 bytes
  • tests/test_v00900.pyruns6,719 bytes
  • tests/test_v01000.pyruns4,016 bytes
  • tests/test_v01100.pyruns5,544 bytes
  • tests/test_v01200.pyruns4,227 bytes
  • tests/test_v01300.pyruns4,293 bytes
  • tests/test_v01400.pyruns5,744 bytes
  • tests/test_v01500.pyruns2,487 bytes
  • tests/test_v01600.pyruns7,231 bytes
  • tests/test_v01700.pyruns6,748 bytes
  • tests/test_v01800.pyruns2,906 bytes
  • tests/test_v01900.pyruns3,007 bytes
Read SKILL.md

# aesthete-agent — Frontend Aesthetics Engine

Why LLM color output is bad, with evidence: models treat hex codes as text, regress to the median of training data (the frontend-tutorial median is purple/indigo), and cannot actually see color. The fix is not a better model — it is **outsourcing taste to process**: manifesto first, role mapping, mechanical validation, in-context self-review.

⛔ Iron rules:
1. **No bare palette writing.** Every color task goes through the six-step method; step 6 (five-lens review) is not skippable.
2. **No runtime access to the source site** — no public API, direct connections hit Cloudflare 403; all data ships offline.
3. **The brief is law**: colors and aesthetics pinned by the user are binding constraints. Already-shipped brand systems are out of scope for re-paletteing.
4. **Bounded verification**: build fully → one batched review → one batched fix round → at most one more confirmation → **stop polishing**.
5. **Candidate discipline**: user verdicts require ≥2 full-page candidates (`make_variants.py` builds the comparison sheet); a single proposal is not sent for review.
6. **Verdict write-back**: every accept/reject lands in `profile.json` (machine-read) and `critique.md` necropsies (failure modes) — no write-back, no growth.

### Task → command (30 seconds)
View the complete source on GitHub

Skills included

  • aesthete-agent

Repository facts

License
MIT
Created
Oct 14, 2026
Last pushed
Oct 25, 2026
Forks
0
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 37 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 171 signals by file

README.md

  • Network accessline 1
    <p align="center"> <b>English</b> | <a href="README.zh-CN.md">简体中文</a> | <a href="https://docsor1212.github.io/aesthete-agent/">Online demo</a>
  • Network accessline 2
    <b>English</b> | <a href="README.zh-CN.md">简体中文</a> | <a href="https://docsor1212.github.io/aesthete-agent/">Online demo</a>
  • Network accessline 15
    [![install](https://img.shields.io/badge/install-npx%20skills%20add%20docsor1212%2Faesthete--agent-blue)](https://github.com/docsor1212/aesthete-agent)
  • Network accessline 16
    [![license](https://img.shields.io/badge/license-MIT-green)](LICENSE)
  • Network accessline 17
    [![palette library](https://img.shields.io/badge/palette%20library-119%20curated-orange)](#the-evidence-library)
  • Network accessline 18
    [![tests](https://img.shields.io/badge/tests-125%20passing-brightgreen)](tests/)
  • Network accessline 31
    Every image below is a real deliverable produced by the engine — roles derived in OKLCH, contrast gated, color-blind simulated, slop checked, then rendered into a full scene. No hand-picked colors. Live versions: [visual showcase](https://d
  • Network accessline 62
    or open [skillhub.cn/skills/aesthete-agent](https://skillhub.cn/skills/aesthete-agent) and click 安装到本地 Agent.
  • Network accessline 139
    | Platform | Handle | Link | |---|---|---| | GitHub (source of truth) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | install above |
  • Network accessline 140
    |---|---|---| | GitHub (source of truth) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | install above | | SkillHub (中文站) | [aesthete-agent](https://skillhub.cn/skills/aesthete-agent) | `skillhub install aesthe
  • Network accessline 141
    | GitHub (source of truth) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | install above |
  • Network accessline 142
    | SkillHub (中文站) | [aesthete-agent](https://skillhub.cn/skills/aesthete-agent) | `skillhub install aesthete-agent` |
  • Network accessline 143
    | ClawHub | [aesthete-agent](https://clawhub.ai/skills/aesthete-agent) | `npx clawhub install aesthete-agent` |
  • Network accessline 144
    | PyPI (MCP) | [aesthete-agent-mcp](https://pypi.org/project/aesthete-agent-mcp/) | `uvx aesthete-agent-mcp` |
  • Network accessline 145
    | Smithery (MCP) | [docsor1212/aesthete-agent-mcp](https://smithery.ai/server/docsor1212/aesthete-agent-mcp) | `npx -y @smithery/cli install ...` |
  • Network accessline 146
    | Online demo | [GitHub Pages](https://docsor1212.github.io/aesthete-agent/) | showcase + live visualizers |

README.zh-CN.md

  • Network accessline 1
    <p align="center"> <a href="README.md">English</a> | <b>简体中文</b> | <a href="https://docsor1212.github.io/aesthete-agent/">在线演示</a>
  • Network accessline 2
    <a href="README.md">English</a> | <b>简体中文</b> | <a href="https://docsor1212.github.io/aesthete-agent/">在线演示</a>
  • Network accessline 15
    [![install](https://img.shields.io/badge/install-npx%20skills%20add%20docsor1212%2Faesthete--agent-blue)](https://github.com/docsor1212/aesthete-agent)
  • Network accessline 16
    [![license](https://img.shields.io/badge/license-MIT-green)](LICENSE)
  • Network accessline 17
    [![palette library](https://img.shields.io/badge/palette%20library-119%20curated-orange)](#实证色板库)
  • Network accessline 18
    [![tests](https://img.shields.io/badge/tests-125%20passing-brightgreen)](tests/)
  • Network accessline 31
    下面每张图都是引擎的真实产出——OKLCH 角色派生、对比度过闸、色盲模拟、AI 味检查,然后渲染成完整场景。没有一张是手工挑色的。在线版:[视觉 showcase](https://docsor1212.github.io/aesthete-agent/demo/showcase.html)(30 个场景 × 精选色板)。
  • Network accessline 62
    或打开 [skillhub.cn/skills/aesthete-agent](https://skillhub.cn/skills/aesthete-agent),点「安装到本地 Agent」。
  • Network accessline 139
    | 平台 | 句柄 | 链接 | |---|---|---| | GitHub(源) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | 安装命令见上 |
  • Network accessline 140
    |---|---|---| | GitHub(源) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | 安装命令见上 | | SkillHub(中文站) | [aesthete-agent](https://skillhub.cn/skills/aesthete-agent) | `skillhub install aesthete-agent` |
  • Network accessline 141
    | GitHub(源) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | 安装命令见上 |
  • Network accessline 142
    | SkillHub(中文站) | [aesthete-agent](https://skillhub.cn/skills/aesthete-agent) | `skillhub install aesthete-agent` |
  • Network accessline 143
    | ClawHub | [aesthete-agent](https://clawhub.ai/skills/aesthete-agent) | `npx clawhub install aesthete-agent` |
  • Network accessline 144
    | PyPI(MCP) | [aesthete-agent-mcp](https://pypi.org/project/aesthete-agent-mcp/) | `uvx aesthete-agent-mcp` |
  • Network accessline 145
    | Smithery(MCP) | [docsor1212/aesthete-agent-mcp](https://smithery.ai/server/docsor1212/aesthete-agent-mcp) | `npx -y @smithery/cli install ...` |
  • Network accessline 146
    | 在线演示 | [GitHub Pages](https://docsor1212.github.io/aesthete-agent/) | showcase + 在线 visualizer |

assets/fonts/README-OFL.txt

  • Network accessline 1
    Fonts in this directory are subsets of Noto Serif SC (SIL Open Font License 1.1). Copyright 2014-2021 Adobe (originally), published by Google. OFL 1.1 full text: https://openfontlicense.org
  • Network accessline 2
    Copyright 2014-2021 Adobe (originally), published by Google. OFL 1.1 full text: https://openfontlicense.org Subsets generated by aesthete-agent font pipeline (--fonts preset/auto).
  • Network accessline 3
    OFL 1.1 full text: https://openfontlicense.org

docs/demo/showcase.html

  • Network accessline 255
    .divbar{height:3px;background:#1F2328;width:64px;border-radius:2px;margin:18px 0 10px} footer{padding:48px 0 72px;font:400 13px system-ui;color:#6B7280;text-align:center} </style></head><body><div class='topnav'><div class='bar'><a class='b
  • Network accessline 256
    footer{padding:48px 0 72px;font:400 13px system-ui;color:#6B7280;text-align:center} </style></head><body><div class='topnav'><div class='bar'><a class='brand' href='../'><span class='mark'><i style='background:#FFA69E'></i><i style='backgro
  • Network accessline 257
    </style></head><body><div class='topnav'><div class='bar'><a class='brand' href='../'><span class='mark'><i style='background:#FFA69E'></i><i style='background:#B8F2E6'></i></span>aesthete-agent <span class='chip'>v0.7.0</span></a><nav><a h
  • Network accessline 267
    <section class='scene' id='sD2'><div class='shead'><span class='sno'>D2</span><h2>Dashboard — KPI + revenue — bright dark</h2><div class='badges'><span class='b ok'>text/bg 8.0:1 AA</span><span class='b ok'>color-blind safe</span><span clas

docs/index.html

  • Network accessline 6
    <title>aesthete-agent — color systems that pass the review</title> <meta name="description" content="A mechanical color engine for front-end work: register-matched palette library, OKLCH role derivation, and four gates that catch contrast f
  • Network accessline 7
    <meta name="description" content="A mechanical color engine for front-end work: register-matched palette library, OKLCH role derivation, and four gates that catch contrast failures, color-blindness collisions and AI-slop signatures before a
  • Network accessline 8
    <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7' fill='%233D405B'/%3E%3Crect x='6' y='6' width='9' height='20' rx='2' fill='%23FFA69E'/%3E%3Crect
  • Network accessline 162
    <a href="#how">How it works</a>         <a href="#install">Install</a>         <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>
  • Network accessline 163
    <a href="#install">Install</a>         <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>       </span>
  • Network accessline 164
    <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>
  • Network accessline 168
    <a href="#how">工作原理</a>         <a href="#install">安装</a>         <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>
  • Network accessline 169
    <a href="#install">安装</a>         <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>       </span>
  • Network accessline 170
    <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>
  • Network accessline 309
    <span class="lbl l-en">SkillHub (CN)</span><span class="lbl l-zh">SkillHub(国内)</span>         <code>skillhub install aesthete-agent --dir ~/.claude/skills</code>         <span class="note l-en"><a href="https://skillhub.cn/skills/aesthete-a
  • Network accessline 310
    <code>skillhub install aesthete-agent --dir ~/.claude/skills</code>         <span class="note l-en"><a href="https://skillhub.cn/skills/aesthete-agent">skillhub.cn</a></span>         <span class="note l-zh"><a href="https://skillhub.cn/skil
  • Network accessline 311
    <span class="note l-en"><a href="https://skillhub.cn/skills/aesthete-agent">skillhub.cn</a></span>
  • Network accessline 312
    <span class="note l-zh"><a href="https://skillhub.cn/skills/aesthete-agent">skillhub.cn</a></span>
  • Network accessline 315
    <span class="lbl l-en">ClawHub</span><span class="lbl l-zh">ClawHub</span>         <code>npx clawhub install aesthete-agent</code>         <span class="note l-en"><a href="https://clawhub.ai/skills/aesthete-agent">clawhub.ai</a></span>
  • Network accessline 316
    <code>npx clawhub install aesthete-agent</code>         <span class="note l-en"><a href="https://clawhub.ai/skills/aesthete-agent">clawhub.ai</a></span>         <span class="note l-zh"><a href="https://clawhub.ai/skills/aesthete-agent">claw
  • Network accessline 317
    <span class="note l-en"><a href="https://clawhub.ai/skills/aesthete-agent">clawhub.ai</a></span>
  • Network accessline 318
    <span class="note l-zh"><a href="https://clawhub.ai/skills/aesthete-agent">clawhub.ai</a></span>
  • Network accessline 321
    <span class="lbl l-en">DeepSeek Harness plugin</span><span class="lbl l-zh">DeepSeek Harness 原生插件</span>         <code>dsh plugin --profile web add github:docsor1212/dsh-aesthete-agent</code>         <span class="note l-en"><a href="https:/
  • Network accessline 322
    <code>dsh plugin --profile web add github:docsor1212/dsh-aesthete-agent</code>         <span class="note l-en"><a href="https://github.com/docsor1212/dsh-aesthete-agent">8 native tools, local engine</a></span>         <span class="note l-zh
  • Network accessline 323
    <span class="note l-en"><a href="https://github.com/docsor1212/dsh-aesthete-agent">8 native tools, local engine</a></span>
  • Network accessline 324
    <span class="note l-zh"><a href="https://github.com/docsor1212/dsh-aesthete-agent">8 个原生工具,本地引擎</a></span>
  • Network accessline 327
    <span class="lbl l-en">MCP server</span><span class="lbl l-zh">MCP 服务器</span>         <code>uvx aesthete-agent-mcp</code>         <span class="note l-en">13 tools from PyPI, any MCP client · or via <a href="https://smithery.ai/server/docsor
  • Network accessline 328
    <code>uvx aesthete-agent-mcp</code>         <span class="note l-en">13 tools from PyPI, any MCP client · or via <a href="https://smithery.ai/server/docsor1212/aesthete-agent-mcp">Smithery</a></span>         <span class="note l-zh">来自 PyPI 的
  • Network accessline 329
    <span class="note l-en">13 tools from PyPI, any MCP client · or via <a href="https://smithery.ai/server/docsor1212/aesthete-agent-mcp">Smithery</a></span>
  • Network accessline 330
    <span class="note l-zh">来自 PyPI 的 13 个工具,任何 MCP 客户端 · 或经 <a href="https://smithery.ai/server/docsor1212/aesthete-agent-mcp">Smithery</a></span>
  • Network accessline 337
    <div class="wrap">     <nav>       <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>
  • Network accessline 338
    <nav>       <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>       <a href="https://pypi.org/project/aesthete-agent-mcp/">PyPI</a>
  • Network accessline 339
    <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a>
  • Network accessline 340
    <a href="https://pypi.org/project/aesthete-agent-mcp/">PyPI</a>
  • Network accessline 341
    <a href="https://smithery.ai/server/docsor1212/aesthete-agent-mcp">Smithery</a>
  • Network accessline 342
    <a href="https://skillhub.cn/skills/aesthete-agent">SkillHub</a>
  • Network accessline 343
    <a href="docs.html">技术文档</a>       <a href="https://docsor.cn/">docsor.cn</a>     </nav>
  • Network accessline 344
    <a href="https://docsor.cn/">docsor.cn</a>

glama.yml

  • Network accessline 1
    # Glama.ai platform configuration # https://glama.ai/mcp/servers/docsor1212/aesthete-agent
  • Network accessline 2
    # https://glama.ai/mcp/servers/docsor1212/aesthete-agent
  • Network accessline 6
    author: "SorSor"   license: "MIT"   homepage: "https://github.com/docsor1212/aesthete-agent"
  • Network accessline 7
    license: "MIT"   homepage: "https://github.com/docsor1212/aesthete-agent"   repository: "https://github.com/docsor1212/aesthete-agent"
  • Network accessline 8
    homepage: "https://github.com/docsor1212/aesthete-agent"
  • Network accessline 9
    repository: "https://github.com/docsor1212/aesthete-agent"
  • Network accessline 10
    documentation: "https://github.com/docsor1212/aesthete-agent#readme"
  • Network accessline 11
    support: "https://github.com/docsor1212/aesthete-agent/issues"

mcp/README.md

  • Network accessline 8
    uvx --from "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp" aesthete-agent-mcp
  • Network accessline 33
    "aesthete-agent": {       "command": "uvx",       "args": ["--from", "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp", "aesthete-agent-mcp"]
  • Network accessline 34
    "command": "uvx",       "args": ["--from", "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp", "aesthete-agent-mcp"]     }
  • Network accessline 35
    "args": ["--from", "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp", "aesthete-agent-mcp"]

mcp/server.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 5
    Run (FastMCP environment):     uvx aesthete-agent-mcp            # PyPI (self-contained wheel)     # or: uvx --from "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp" aesthete-agent-mcp
  • Network accessline 6
    uvx aesthete-agent-mcp            # PyPI (self-contained wheel)     # or: uvx --from "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp" aesthete-agent-mcp     # or: python mcp/server.py            # stdio mode
  • Network accessline 7
    # or: uvx --from "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp" aesthete-agent-mcp

references/design-techniques.md

  • Network accessline 27
    <!-- 颗粒噪点(data-URI,零外链) --> :root{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3
  • Network accessline 28
    :root{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height=

references/exemplars/blueprint-dark.html

  • Network accessline 64
    body{background:var(--night);color:var(--pale)} .frame{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M24 0H0V24' fill='none' stroke='%23DBEAFE' stroke-opacity='.10'/%3
  • Network accessline 65
    .frame{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M24 0H0V24' fill='none' stroke='%23DBEAFE' stroke-opacity='.10'/%3E%3C/svg%3E");background-size:24px 24px}

references/exemplars/dark-four-act-dark.html

  • Network accessline 25
    --serif:'Noto Serif SC','Source Han Serif SC','Songti SC',Georgia,serif;   --sans:-apple-system,'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif;   --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' h
  • Network accessline 26
    --sans:-apple-system,'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif;   --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFr
  • Network accessline 27
    --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' 

references/exemplars/editorial-mag-light.html

  • Network accessline 64
    .bleed{height:60vh;background:var(--night);position:relative;overflow:hidden;         display:flex;align-items:flex-end} .bleed::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3
  • Network accessline 65
    display:flex;align-items:flex-end} .bleed::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fra
  • Network accessline 66
    .bleed::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numO

references/expressive-design.md

  • Network accessline 36
    --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' 

references/harvest-playbook.md

  • Network accessline 11
    - **无公开 API**:`the source site/api/*`、`/api/palettes/*` 等 curl 直连全部 HTTP 403(Cloudflare "Just a moment"),无论带什么 UA。WebFetch 同样 403。
  • Network accessline 19
    1. **开页**:`agent.browsers.getForUrl("https://the source site/palettes/trending")` → 新 tab → goto → `waitForLoadState("domcontentloaded")`。Cloudflare 挑战页标题是"请稍候…",**等 5-8 秒**自动放行(无需点击),以 `tab.title()` 变为 "Trending Color Palettes - the source

scripts/_showcase_scenes.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 701
    "<a href='#vivid'>Vivid &amp; Bold</a><a href='#elegant'>Elegant &amp; Deep</a>"             "<a href='#dark'>Bright dark</a><a class='x' href='../'>&larr; Overview</a>"             "<a class='x' href='https://github.com/docsor1212/aesthete
  • Network accessline 702
    "<a href='#dark'>Bright dark</a><a class='x' href='../'>&larr; Overview</a>"             "<a class='x' href='https://github.com/docsor1212/aesthete-agent'>GitHub</a></nav>"             "</div></div>"
  • Network accessline 703
    "<a class='x' href='https://github.com/docsor1212/aesthete-agent'>GitHub</a></nav>"
  • Network accessline 719
    + dark_scenes +             "<footer>aesthete-agent v0.5.0 — every canvas above passed contrast / color-blind / AI-slop / scorecard gates before rendering."             "<br><a href='../'>&larr; Overview</a> · <a href='https://github.com/do
  • Network accessline 720
    "<footer>aesthete-agent v0.5.0 — every canvas above passed contrast / color-blind / AI-slop / scorecard gates before rendering."             "<br><a href='../'>&larr; Overview</a> · <a href='https://github.com/docsor1212/aesthete-agent'>Git
  • Network accessline 721
    "<br><a href='../'>&larr; Overview</a> · <a href='https://github.com/docsor1212/aesthete-agent'>GitHub</a> · "
  • Network accessline 722
    "<a href='https://pypi.org/project/aesthete-agent-mcp/'>PyPI</a> · <a href='#top'>Back to top</a></footer>"

scripts/build_library.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/chart_kit.py

  • Executable scriptline 1
    Executable file

scripts/color_director.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/exemplar_kit.py

  • Executable scriptline 1
    Executable file

scripts/font_kit.py

  • Executable scriptline 1
    Executable file

scripts/layout_recipes.py

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    def _grain():     return ("url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' "
  • Network accessline 20
    return ("url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' "
  • Network accessline 26
    def _grid_bg(line_color):     svg = ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E"
  • Network accessline 27
    svg = ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E"

scripts/lint_page.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/loop_kit.py

  • Executable scriptline 1
    Executable file

scripts/make_cjk_subset.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 24
    # Source Han Serif release assets (Adobe, OFL-1.1). Weight name -> file name # in https://github.com/adobe-fonts/source-han-serif/releases (SubsetOTF/CN/)
  • Network accessline 25
    # in https://github.com/adobe-fonts/source-han-serif/releases (SubsetOTF/CN/)
  • Network accessline 31
    "Regular": "SourceHanSerifCN-Regular.otf", } DOWNLOAD_URL = ("https://github.com/adobe-fonts/source-han-serif/releases/download/"
  • Network accessline 32
    } DOWNLOAD_URL = ("https://github.com/adobe-fonts/source-han-serif/releases/download/"                 "2.003R/09_SourceHanSerifCN.zip")
  • Network accessline 33
    DOWNLOAD_URL = ("https://github.com/adobe-fonts/source-han-serif/releases/download/"

scripts/make_exemplars.py

  • Executable scriptline 1
    Executable file

scripts/make_variants.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/narrate_kit.py

  • Executable scriptline 1
    Executable file

scripts/page_audit.py

  • Executable scriptline 1
    Executable file

scripts/palette_forge.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2253
    elif args.format == "svg":         w = 120 * len(hexes)         parts = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="120">']
  • Network accessline 2254
    w = 120 * len(hexes)         parts = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="120">']         for i, h in enumerate(hexes):
  • Network accessline 2255
    parts = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="120">']

scripts/qc_kit.py

  • Executable scriptline 1
    Executable file

scripts/render_probe.js

  • Executable scriptline 1
    Executable file

scripts/scaffold_kit.py

  • Executable scriptline 1
    Executable file
  • Network accessline 129
    --serif:'Noto Serif SC','Source Han Serif SC','Songti SC',Georgia,serif;   --sans:-apple-system,'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif;   --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' h
  • Network accessline 130
    --sans:-apple-system,'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif;   --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFr
  • Network accessline 131
    --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' 

scripts/scene_kit.py

  • Executable scriptline 1
    Executable file

scripts/token_sheet.py

  • Executable scriptline 1
    Executable file

scripts/type_kit.py

  • Executable scriptline 1
    Executable file

tests/__init__.py

  • Executable scriptline 1
    Executable file

tests/test_v00202.py

  • Executable scriptline 1
    Executable file

tests/test_v00300.py

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    svg = os.path.join(TMP, "sh.svg")         open(svg, "w", encoding="utf-8").write(             '<svg xmlns="http://www.w3.org/2000/svg"><rect fill="#E8E4F8"/>'
  • Network accessline 101
    open(svg, "w", encoding="utf-8").write(             '<svg xmlns="http://www.w3.org/2000/svg"><rect fill="#E8E4F8"/>'             '<circle fill="#7C6BD4"/><rect fill="#3A3160"/><path fill="#FFFFFF"/>'
  • Network accessline 102
    '<svg xmlns="http://www.w3.org/2000/svg"><rect fill="#E8E4F8"/>'
  • Network accessline 123
    svg = os.path.join(TMP, "in.svg")         open(svg, "w", encoding="utf-8").write(             '<svg xmlns="http://www.w3.org/2000/svg"><rect width="10" height="10" '
  • Network accessline 124
    open(svg, "w", encoding="utf-8").write(             '<svg xmlns="http://www.w3.org/2000/svg"><rect width="10" height="10" '             'fill="#E8E4F8"/><circle fill="#7C6BD4"/><path fill="#FFFFFF"/>'
  • Network accessline 125
    '<svg xmlns="http://www.w3.org/2000/svg"><rect width="10" height="10" '

tests/test_v00400.py

  • Executable scriptline 1
    Executable file

tests/test_v00500.py

  • Executable scriptline 1
    Executable file

tests/test_v00501.py

  • Executable scriptline 1
    Executable file

tests/test_v00600.py

  • Executable scriptline 1
    Executable file

tests/test_v00601.py

  • Executable scriptline 1
    Executable file

tests/test_v00700.py

  • Executable scriptline 1
    Executable file

tests/test_v00800.py

  • Executable scriptline 1
    Executable file

tests/test_v00900.py

  • Executable scriptline 1
    Executable file

tests/test_v01000.py

  • Executable scriptline 1
    Executable file

tests/test_v01100.py

  • Executable scriptline 1
    Executable file

tests/test_v01200.py

  • Executable scriptline 1
    Executable file

tests/test_v01300.py

  • Executable scriptline 1
    Executable file

tests/test_v01400.py

  • Executable scriptline 1
    Executable file

tests/test_v01500.py

  • Executable scriptline 1
    Executable file

tests/test_v01600.py

  • Executable scriptline 1
    Executable file

tests/test_v01700.py

  • Executable scriptline 1
    Executable file

tests/test_v01800.py

  • Executable scriptline 1
    Executable file

tests/test_v01900.py

  • Executable scriptline 1
    Executable file

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 3 facts
Signal confidence: 118 facts

and 68 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.