agentleFS
AboudjemAboudjem/ui-ux-suite/CLAUDE.md

ui-ux-suite

CLAUDE.md8 starsChanged 7 months agoMITView on GitHub

UI/UX Design Intelligence Suite A Claude Code plugin that gives any developer instant, evidence-based design auditing across 12 dimensions (color, typography, layout, accessibility, interaction quality, and more). It scans real project files (CSS, JSX, Tailwind configs), produces quantified scores (1-10 per dimension, weighted overall), and generates actionable fix recommendations with before/after code. Think "ESLint for design", but powered by 21 knowledge base documents, 12 specialized agents, and real color science (WCAG 2.2, APCA, OKLCH, deltaE). Core Value: Any developer can…

The file

We split this CLAUDE.md into the rules it gives an agent

4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Install: Must work via claude plugin add from GitHub URL

    line 14
  2. Distinctive:

    Compatibility: Must work with any frontend project (React, Vue, Svelte, Angular, vanilla)

    line 15
  3. Very specific:

    No project skills found. Add skills to any of: .claude/skills/, .agents/skills/, .cursor/skills/, or .github/skills/ with a SKILL.md index …

    line 139
  4. Very specific:

    When cutting a release, bump the version in every version-carrying file and add a CHANGELOG.md entry:

    line 171

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

Project

UI/UX Design Intelligence Suite

A Claude Code plugin that gives any developer instant, evidence-based design auditing across 12 dimensions (color, typography, layout, accessibility, interaction quality, and more). It scans real project files (CSS, JSX, Tailwind configs), produces quantified scores (1-10 per dimension, weighted overall), and generates actionable fix recommendations with before/after code. Think "ESLint for design", but powered by 21 knowledge base documents, 12 specialized agents, and real color science (WCAG 2.2, APCA, OKLCH, deltaE).

Core Value: Any developer can audit their project's design quality in one command and get a prioritized, evidence-backed action plan, no design background needed.

Constraints

  • Platform: Claude Code plugin (manifest.json format)
  • Runtime: Node.js (no external dependencies, zero-dep by design)
  • License: MIT (already declared)
  • Install: Must work via claude plugin add from GitHub URL
  • Compatibility: Must work with any frontend project (React, Vue, Svelte, Angular, vanilla)

Technology Stack

Recommended Stack

Distribution: Claude Code Plugin (Primary) + npm (Secondary)

TechnologyVersionPurposeWhyConfidence
Claude Code Plugin SystemcurrentPrimary distribution via claude plugin installThis IS a Claude Code plugin. The .claude-plugin/plugin.json manifest is the native format. Users install from a marketplace or GitHub URL. This is the zero-friction path.HIGH
npmlatestSecondary distribution via npx / standalone useGives discoverability on npmjs.com, enables npx ui-ux-suite standalone usage, and unlocks npm trusted publishing with OIDC provenance. Dual distribution covers both plugin users and CLI users.HIGH
GitHub-Source hosting, CI/CD, issues, releasesIndustry standard. GitHub Actions for CI, GitHub Releases for changelogs, GitHub Topics for discoverability. No alternative worth considering.HIGH

CI/CD: GitHub Actions

TechnologyVersionPurposeWhyConfidence
GitHub Actionsv4 actionsCI pipeline (test, lint, validate, publish)Native to GitHub. Free for open source. OIDC support for npm trusted publishing. No reason to use anything else for a GitHub-hosted OSS project.HIGH
actions/checkoutv4Repo checkoutStandard.HIGH
actions/setup-nodev4Node.js setup with npm cacheHandles .npmrc setup for publishing, caches npm dependencies.HIGH
npm trusted publishing (OIDC)GA (July 2025)Tokenless npm publishingEliminates stored NPM_TOKEN secrets. Uses short-lived OIDC credentials. Automatic provenance attestations. This is the current best practice as of 2025. Requires npm CLI 11.5.1+ and Node 22.14.0+. Important limitation: You must publish the first version manually with npm publish, then configure OIDC for subsequent releases.HIGH

ci.yml -- Core CI

release.yml -- npm Publish with OIDC

Testing: Node.js Built-in Test Runner (node:test)

TechnologyVersionPurposeWhyConfidence
node:testNode 20+ (stable)Unit and integration testsZero dependencies. This project is explicitly zero-dep by design. The built-in test runner is stable since Node 20, supports describe/it/test, has assert built in, and handles this project's needs (pure JS library testing, no browser, no JSX transform). Vitest would add a dependency; Jest would add a dependency. node:test is the only choice consistent with the zero-dep philosophy.HIGH
node:assertNode 20+AssertionsShips with Node. Strict mode (assert.strict) covers all assertion needs.HIGH
--experimental-test-coverageNode 22+Code coverageBuilt into Node. Outputs tap/spec/lcov. Coverage thresholds available since Node 22.8.0. Experimental but functional -- acceptable for a project that values zero deps over mature coverage tooling.MEDIUM

Linting: Biome

TechnologyVersionPurposeWhyConfidence
Biome1.xLint + format (single tool)Replaces ESLint + Prettier with one binary. ~100x faster than ESLint. Zero config needed for JS. Single dev dependency is acceptable (dev deps don't ship to users). The project has no TypeScript, no JSX in its own code -- Biome handles plain JS perfectly.HIGH

Versioning & Changelog: Manual + git tags (v1), consider release-please later

TechnologyVersionPurposeWhyConfidence
Manual semver + git tags-Version managementFor a solo-maintainer v1 launch, automated release tools (semantic-release, changesets, release-please) are overkill. Bump version in plugin.json and package.json, git tag v1.0.0, push. The GitHub Actions release workflow handles the rest.HIGH
softprops/action-gh-release@v2v2GitHub Release creationAuto-generates release notes from commits on tag push. Simple, no config.HIGH

Documentation Tooling

TechnologyVersionPurposeWhyConfidence
README.md-Primary documentationGitHub renders it as the landing page. For a CLI plugin, the README IS the docs site. No need for a separate docs framework (Docusaurus, VitePress) at v1.HIGH
Markdown-All documentation filesREADME, CONTRIBUTING, CHANGELOG, LICENSE, examples. Renders on GitHub and npm. Universal.HIGH
  • Docusaurus / VitePress / Starlight -- Overkill for a plugin. The README and in-repo markdown files are sufficient. Add a docs site when the project has 500+ stars and complex configuration options.
  • TypeDoc / JSDoc site generator -- The project is a plugin, not a library API. Users interact through Claude Code skills/commands, not by importing functions.

Badge Services

TechnologyPurposeBadge URL PatternConfidence
Shields.ioAll badgesimg.shields.io/...HIGH
GitHub Actions badgeCI statusgithub.com/{owner}/{repo}/actions/workflows/ci.yml/badge.svgHIGH
  • ![npm downloads](https://img.shields.io/npm/dm/ui-ux-suite) -- only after meaningful download numbers
  • ![GitHub stars](https://img.shields.io/github/stars/Aboudjem/ui-ux-suite) -- only after 50+ stars

Social Proof & Discoverability

MechanismHowWhyConfidence
GitHub TopicsAdd via repo settings: claude-code, claude-code-plugin, design, ui-ux, accessibility, css, audit, developer-toolsGitHub Topics drive search discovery. claude-code-plugin is the key topic for the Claude Code ecosystem.HIGH
npm keywordsAlready in package.json; add claude-code-plugin, design-audit, wcag, accessibility-auditnpm search uses keywords field.HIGH
GitHub descriptionOne compelling sentence in repo settingsShows in search results, link previews, GitHub Explore.HIGH
.claude-plugin/plugin.json keywordsAdd to manifestPlugin marketplace discovery.HIGH
Claude Code marketplace listingCreate or join a marketplace, or submit to official directoryThe official plugins.claude.ai directory is the highest-visibility channel for Claude Code plugins.MEDIUM
GitHub social preview image1280x640 PNG with logo + taglineShows in link previews on Twitter, Slack, Discord. First visual impression.HIGH

Plugin-Specific Distribution Architecture

FilePurposeAuthority
.claude-plugin/plugin.jsonClaude Code plugin manifestPrimary. This is what Claude Code reads.
package.jsonnpm package metadataSecondary. For npm publishing and npm test/scripts.
manifest.json (root)Legacy/redundantRemove or redirect. Having both manifest.json at root AND .claude-plugin/plugin.json creates confusion. The root manifest.json appears to be an older format. Migrate to .claude-plugin/plugin.json exclusively.

Plugin Directory Structure (target)

.npmignore (Critical)

Alternatives Considered

CategoryRecommendedAlternativeWhy Not
Testingnode:testVitestAdds dependency. Project is zero-dep.
Testingnode:testJestAdds dependency. Slower. Heavier.
LintingBiomeESLint + PrettierTwo tools, more config, slower. Fine choice but not better.
LintingBiomeoxlintLess mature formatter story. Biome does lint+format.
VersioningManual + tagssemantic-releaseOverkill for solo maintainer v1. Auto-publishes on commit -- too aggressive.
VersioningManual + tagschangesetsDesigned for monorepos. Wrong tool for single package.
VersioningManual + tagsrelease-pleaseGood tool, but adds complexity before it's needed. Revisit at v2.
DocsREADME.mdDocusaurusPlugin docs don't need a full site. README is the landing page.
DocsREADME.mdVitePressSame reasoning. Over-engineered for v1.
CIGitHub ActionsCircleCIGitHub Actions is free for OSS and native to GitHub. No reason to add another service.
npm authOIDC trusted publishingNPM_TOKEN secretOIDC is more secure (no stored tokens), generates provenance automatically.
BadgeShields.ioBadgenShields.io has 1.6B monthly images served. De facto standard.

Installation Commands

For users (plugin install)

Via Claude Code marketplace (once listed)

Via GitHub directly

For users (npm)

For contributors (dev setup)

Node.js Version Requirements

ContextMinimumRecommendedWhy
RuntimeNode 20Node 22Node 20 is current LTS (EOL April 2026). Node 22 is active LTS. node:test is stable in both. Coverage thresholds require 22.8+.
CI matrix20, 22Test bothEnsures compatibility with both LTS versions.
npm publishNode 22.14+Node 22Required for OIDC trusted publishing (npm CLI 11.5.1+).

What NOT to Use

  • TypeScript build step -- The project is vanilla JS, zero-dep. Adding a build step adds friction.
  • Bundler (webpack/esbuild/rollup) -- No need. Direct Node.js execution.
  • Documentation site (Docusaurus/VitePress) -- Overkill for v1. README is sufficient.
  • Monorepo tools (turborepo/nx/lerna) -- Single package.
  • semantic-release -- Too aggressive for v1. Auto-publishes without review.
  • Husky/lint-staged -- Pre-commit hooks are nice but add friction for contributors. CI catches lint issues. Consider adding later.
  • Codecov/Coveralls -- Node's built-in coverage is sufficient for v1. Add external coverage reporting when the project has contributors who need visibility.

Sources

Conventions

Conventions not yet established. Will populate as patterns emerge during development.

Architecture

Architecture not yet mapped. Follow existing patterns found in the codebase.

Project Skills

No project skills found. Add skills to any of: .claude/skills/, .agents/skills/, .cursor/skills/, or .github/skills/ with a SKILL.md index file.

Contributor notes (portability and discoverability layer)

These notes record the gotchas introduced by the multi-CLI install and discoverability work. Keep them current when you touch the related files.

Host-agnostic agents (#167)

The 12 agents under agents/ carry no model: frontmatter. Each host CLI falls back to its own default model, so the plugin works the same in Claude Code, Cursor, Codex, Gemini, and every other host. A literal model: inherit is a Claude-Code-only keyword that some hosts (for example OpenCode) reject as an unknown model id, which is why each agent frontmatter carries only name, description, and tools. When adding a new agent, omit model:. The model-tier intent (the design-auditor and psychology-analyst were the two deeper-reasoning agents) lives here in prose, not in frontmatter.

Multi-CLI installer target directories

install.sh and install.ps1 symlink the 14 skills under skills/ into a CLI's skills directory. Current map:

PlatformDirectoryStyle
gemini, codex, opencode, pi~/.agents/skillsper-skill
vscode, copilot~/.copilot/skillsper-skill
trae~/.trae/skillsper-skill
vibe~/.vibe/skillsper-skill
openclaw~/.openclaw/skillsfolder
antigravity~/.gemini/antigravity/skillsfolder
hermes, cline, kimi~/.<cli>/skillsfolder

These conventions change between CLI releases. When one drifts, update install.sh (platform_target), install.ps1 (Get-PlatformTarget), and the install matrix in the README together. The MCP server (npx ui-ux-suite --mcp) is the universal fallback and is unaffected by this table.

Manifests to keep in sync

Three plugin manifests must stay aligned on name, version, and description: .claude-plugin/plugin.json, .cursor-plugin/plugin.json, .copilot-plugin/plugin.json. ui-ux-suite is dual-mode (it ships an MCP server), so the Cursor and Copilot manifests also carry an mcp block mirroring the npx ui-ux-suite --mcp invocation documented in the README.

Version-bump checklist

When cutting a release, bump the version in every version-carrying file and add a CHANGELOG.md entry:

  • package.json
  • .claude-plugin/plugin.json
  • .cursor-plugin/plugin.json
  • .copilot-plugin/plugin.json
  • server.json (the Official MCP Registry entry)
  • CHANGELOG.md (new dated section)

Five version files, not four. ci.yml fails the build when plugin.json and package.json disagree, which is exactly how 0.5.0 against 0.5.1 was caught.

The npm files list does not include the installer, the discovery manifests, READMEs/, or site/, so those are repo-only and are not shipped to npm.

GitHub Pages

site/index.html is deployed by .github/workflows/deploy-pages.yml (concurrency: pages). It reuses the already-built demo assets (.github/assets/demo.gif) and the sample audit report (docs/demo/sample-audit.html); it does not rebuild them. Pages must be set to deploy from GitHub Actions in the repo settings.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.