Make Agent Design Taste installable, routable and internally consistent - #1
Merged
Merged
Conversation
The design knowledge was already strong. The gaps were onboarding, context routing, and a handful of rules that contradicted each other. This addresses all three without replacing any of the existing systems. Onboarding - AGENT-BOOTSTRAP.md: a 75-line universal entry point (10 steps + what NOT to load) - README rewritten as a dual human/agent entrypoint: three concrete install modes, a copy-paste one-shot prompt, a FOR AI AGENTS section, the workflow diagram, and measured context costs - README.pl.md: full Polish translation with a language switch in both files - docs/INTEGRATIONS.md: per-agent setup for Claude Code, Codex, Cursor, Windsurf, GitHub Copilot, Gemini CLI, Lovable and v0 — every mechanism checked against that tool's own documentation, nothing guessed - adapters/ + scripts/install.sh: copy-paste instruction files per agent Context routing - docs/CONTEXT-PROFILES.md: LIGHT / STANDARD / FULL with per-file token costs measured by `validate.py --budget` - design-taste.manifest.json + styles/index.json: machine-readable routing — ids, aliases, paths, scoring weights, veto conditions, style compatibility - The rule made explicit everywhere: never load all 15 styles (~41k tokens) Contradictions resolved - Canonical mobile viewport is now 390px (360 as the narrow floor). The repo previously said "390px first" in one place and 375px in another. - SKILL.md hard rule 3 rewritten. "Never invent colors/fonts outside the chosen tokens" conflicted with "preserve existing brand colors/fonts". Both are now expressed through one precedence chain (docs/PRECEDENCE.md): brand ▸ accessibility ▸ product ▸ style DNA ▸ tokens ▸ agent taste, with ANALYZE → MAP → ADAPT for projects that already have a design system. Deepened, not replaced - DECISION-MATRIX: 11 brief signals, absolute veto gates, weighted scoring cards per style — the agent must now say why the runner-up loses - ANTI-SLOP: BLOCKER / STRONG / MINOR severity + new detections - DESIGN-TASTE-SCORE: 13 weighted categories summing to 100, 8 hard blockers, accessibility carrying the highest single weight - LAYOUT-PATTERNS: 43 patterns became a decision library (when to use, density, fitting/conflicting styles, mobile recomposition, CTA, a11y, AI mistake) - typography / visual-language / component-patterns substantially expanded; new accessibility/ and responsive/ foundations - All 15 style DNAs restructured into one 24-section architecture, each gaining a design philosophy, responsive behaviour, style combinations and a real signature move — individuality preserved Fixed - gen_tokens.py emitted invalid Tailwind v4 (--color--bg, --radiu--sm, --fontSize--h1); now correct namespaces. tokens.json keys had leading dashes. - Scripts had a hard-coded path from the author's machine - Five styles were missing documented token categories; kinetic typography had no --shadow-focus at all, which is an accessibility requirement Verification - scripts/validate.py: 943 structural checks (folders, links, generated-file freshness, token categories, the 24-section architecture, example HTML) - scripts/screenshot.mjs: renders any page at 1440/768/390/360 and fails on mobile overflow — makes rendered verification a real step, not an instruction - GitHub Actions workflow running all of it - CONTRIBUTING.md, CHANGELOG.md, LICENSE, docs/STYLE-TEMPLATE.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MSG5kjLk3ZvmZy2C4B17kP
aievolutionpl
marked this pull request as ready for review
September 4, 2026 15:03
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This was referenced Sep 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The design knowledge was already strong. The gaps were onboarding, context routing, and a handful of rules that contradicted each other. This addresses all three without replacing any existing system.
98 files changed · +10,632 / −1,7971. Onboarding — the README as a mental installer
A human should know what to do in 30 seconds; an agent reading the same file should know too.
AGENT-BOOTSTRAP.md— a 75-line universal entry point: 10 steps, reading order by task, and an explicit what NOT to load table.README.mdrewritten — three concrete install modes (one-shot / project / global), a copy-paste one-shot prompt, aFOR AI AGENTSsection, the workflow diagram, measured context costs, and a verification question to confirm the install worked.README.pl.md— full Polish translation, language switch at the top of both. No more mixed languages in one file.docs/INTEGRATIONS.md— per-agent setup for Claude Code, Codex, Cursor, Windsurf, GitHub Copilot, Gemini CLI, Lovable and v0. Every mechanism was checked against that tool's own documentation before being written down — file paths, precedence order, size caps, frontmatter fields. Nothing guessed.adapters/+scripts/install.sh— copy-paste instruction files per agent, installed with one command (--dry-runand no-overwrite-without---force).2. Context routing — never load all 15 styles
docs/CONTEXT-PROFILES.md— LIGHT (~3k) / STANDARD (~8k) / FULL (~25k), with per-file token costs measured byvalidate.py --budget, not estimated.design-taste.manifest.json+styles/index.json— machine-readable routing: ids, aliases, paths, scoring weights, veto conditions, supporting and incompatible styles. Another agent can route without parsing prose.3. Contradictions resolved
SKILL.mdsaid "390px first"; step 8 and three other files said 375pxSKILL.md: "never invent colors/fonts outside the chosen tokens" vsDECISION-MATRIX: "keep existing brand colors/fonts"docs/PRECEDENCE.md:brand & legal ▸ accessibility ▸ product ▸ style DNA ▸ repo tokens ▸ agent taste, plus ANALYZE → MAP → ADAPT for projects that already have a design system, and an explicit rule for the brand-vs-contrast collision (keep the brand, derive an accessible variant in the same hue family).assets/decision-tree.pngtokens.jsonandtokens.tailwind.css— the strongest argument for developers.4. Deepened, not replaced
DECISION-MATRIX.md— 11 brief signals, absolute veto gates, and a weighted scoring card per style. The agent must now output why the runner-up loses.ANTI-SLOP.md— BLOCKER / STRONG SMELL / MINOR SMELL severity, plus new detections (every section in a card, generic icon grids, meaningless metric cards, generic marketing copy, desktop merely stacked for mobile).evaluation/DESIGN-TASTE-SCORE.md— 13 weighted categories summing to 100, 8 hard blockers that fail a design regardless of total, accessibility carrying the highest single weight (12).LAYOUT-PATTERNS.md— the 43 patterns became a decision library: when to use, density fit, fitting/conflicting styles, mobile recomposition, CTA placement, accessibility notes, and the common AI mistake for each.typography/,visual-language/,component-patterns/substantially expanded (typeface signals and metrics, Polish/CE diacritics, font-loading cost; per-style image direction table; 19 components × 8 interaction states).accessibility/ACCESSIBILITY.md(a quality gate with a per-style failure table) andresponsive/RESPONSIVE-FOUNDATIONS.md(recomposition, not stacking).5. Bugs fixed
gen_tokens.pyemitted invalid Tailwind v4:--color--bg(doubled prefix),--radiu--sm(rstrip('s')ate the namespace),--fontSize--h1(camelCase). Now correct--color-*/--text-*/--radius-*/--shadow-*/--ease-*/--container-*namespaces.tokens.jsonkeys had leading dashes ("-bg").15-expressive-kinetic-typographyhad no--shadow-focusat all, which is an accessibility requirement.07-neumorphismhad a duplicated "When NOT to use" section and a vague citation; an unverifiable research citation inMODE-ROUTING.mdwas removed.6. Verification
scripts/validate.pychecks style folders, required files, token categories, generated-file freshness, the 24-section architecture, every internal link, everyexample.htmlparse, manifest path resolution, duplicate ids and aliases, and stale viewport references.scripts/screenshot.mjsrenders any page or example at all four canonical viewports and exits non-zero on horizontal overflow at mobile — it makes rendered verification a step you can run, not an instruction you can skip. Screenshots go to a gitignored directory; no binaries added.A GitHub Actions workflow runs the validator, verifies generated files are committed, prints the context budget, and smoke-tests the installer.
Also added:
CONTRIBUTING.md(with a full checklist for style #16),CHANGELOG.md,LICENSE,docs/STYLE-TEMPLATE.md,docs/EXAMPLE-WORKFLOW.md(one brief followed end to end, with the actual context cost at the bottom).Compatibility notes
Three changes are breaking for anyone who pinned to the old structure, and are listed in
CHANGELOG.md:375px→390pxas the canonical mobile viewport.SKILL.mdhard rule 3 was rewritten.Core directory names were deliberately not renamed — external installations reference them by path.
Not done
docs/index.htmlwith instructions for enabling GitHub Pages, rather than claiming a live URL I could not verify from this environment.example.html. Worth a follow-up.🤖 Generated with Claude Code
https://claude.ai/code/session_01MSG5kjLk3ZvmZy2C4B17kP
Generated by Claude Code