Skip to content

feat: verb command interface + deterministic linter#307

Open
asayeed95 wants to merge 2 commits into
nextlevelbuilder:mainfrom
asayeed95:feat/verb-command-interface
Open

feat: verb command interface + deterministic linter#307
asayeed95 wants to merge 2 commits into
nextlevelbuilder:mainfrom
asayeed95:feat/verb-command-interface

Conversation

@asayeed95
Copy link
Copy Markdown

Summary

Turns the CSV/BM25 engine into an ergonomic verb interface. Adds 8 top-level uipro subcommands so agents and humans can call intent (audit, polish, critique, redesign, harden, lint, generate, brandkit) instead of composing raw --domain queries.

The thesis: data depth alone isn't enough — competitors (taste-skill, impeccable) are winning the ergonomics layer. This PR bridges the engine to a memorable command surface without sacrificing the depth underneath. Repositions the README to "The UI quality layer for AI coding agents".

What's in this PR

Verb interface

  • uipro audit <path> — UX/quality audit (accessibility, performance, interactions)
  • uipro polish <path> — Final pass (spacing, hierarchy, focus, typography)
  • uipro critique <topic> — Design review (visual hierarchy, emotional tone, structural clarity)
  • uipro redesign <topic> — Full redesign proposal (style + palette + type)
  • uipro harden <path> — Production hardening (error/empty/loading, i18n, edges)

Each verb composes the right domain queries against the existing engine and renders a severity-sorted markdown checklist.

Deterministic lint

  • uipro lint <path> — regex-based anti-pattern scanner
  • 12 default rules (emoji-as-icon, missing alt, icon-only button without aria-label, raw hex in className, outline:none without replacement focus ring, div+onClick without role, animating width/height, disabled zoom, placeholder-as-label, anchor-without-href-as-button, fixed 100vh on mobile)
  • CSV-overridable via data/lint-rules.csv for contributors
  • CI-friendly: exits non-zero on Critical/High findings — wire into pre-commit
  • No LLM, no API key, no network — pure regex

Higgsfield command hooks

  • uipro generate <mode> --prompt "..." — modes: hero, mobile, lifestyle, hand (mapped to Higgsfield product_shot / conceptual_product / lifestyle_scene / closeup_product_with_person)
  • uipro brandkit --prompt "..." — 3-image pack (logo concept + palette swatch + type specimen)
  • Graceful fallback when Higgsfield CLI is missing

README repositioning

  • New one-liner: "The UI quality layer for AI coding agents"
  • Verb table front-and-center
  • Live demo section with real uipro lint / audit / polish output (no screenshots — actual stdout)
  • Before/after example showing the linter catching real findings in a working Next.js scaffold

SKILL template update

  • templates/base/skill-content.md gets a "Verb Commands" section so installed skills teach Claude/Cursor/Codex when to invoke each verb

Files changed

File Status Notes
src/ui-ux-pro-max/scripts/verbs.py NEW (~270 lines) Verb dispatcher + Higgsfield wrappers
src/ui-ux-pro-max/scripts/lint.py NEW (~230 lines) Deterministic scanner, 12 rules, CSV-overridable
cli/src/commands/verbs.ts NEW (~95 lines) Node→Python dispatch, platform-aware
cli/src/index.ts MODIFIED Registers all 8 verbs as uipro subcommands
cli/assets/scripts/{verbs,lint}.py NEW Synced for install-time delivery
src/ui-ux-pro-max/templates/base/skill-content.md MODIFIED +Verb Commands section
README.md MODIFIED New positioning + verb table + live-output demo

Total: ~1,531 insertions, 2 deletions across 9 files (2 commits).

Smoke tests run

  • python3 verbs.py list → clean output, all 8 verbs listed
  • python3 verbs.py audit "landing page" → real UX rules pulled from ux-guidelines.csv, severity-filtered
  • python3 verbs.py polish "hero section" → spacing/hierarchy/focus checklist
  • python3 lint.py <repo> --severity Mediumcaught 2 real anti-patterns in a working Next.js scaffold (the >✓< emoji checkmark + raw #1e293b / #0a0a0a hex in a gradient). Exit code 1 (Critical/High present). The example in the README demo section is genuine output from this exact run.
  • bun run build → 111 modules, 0 errors, 0.34 MB bundle
  • node dist/index.js --help → all 8 verbs registered alongside init / update / uninstall / versions
  • node dist/index.js audit --help → severity + JSON flags wired through

Strategic context

The current category landscape (May 2026):

  • ui-ux-pro-max (this repo) — 78.5K ★ — depth + breadth (18 platforms × 12 stacks, 161 palettes, 99 UX rules)
  • pbakaus/impeccable — 27.7K ★ — 23-verb command interface, deterministic CLI checker
  • Leonxlnx/taste-skill — 17.3K ★ — atomic visual-style skills, image-gen, viral creator distribution

Impeccable's verb interface + deterministic checker are the two specific ergonomic moats this PR closes. Taste Skill's image-gen edge gets neutralized by the Higgsfield hooks. The README repositioning turns the lead from "design intelligence" (abstract) into "the UI quality layer agents call" (concrete category claim).

🤖 Generated with Claude Code

Abdur Rahman and others added 2 commits May 14, 2026 18:39
Turn the CSV/BM25 engine into ergonomic verb commands. Adds 8 top-level
`uipro` subcommands so users can call intent (`audit`, `polish`,
`critique`, `redesign`, `harden`, `lint`, `generate`, `brandkit`) instead
of composing raw domain queries.

Why: data depth alone is not enough — competitors (taste-skill, impeccable)
are winning the ergonomics layer. This bridges the engine to a memorable
command surface without sacrificing the depth underneath.

What's new:
- src/ui-ux-pro-max/scripts/verbs.py — dispatcher composing domain queries
  per intent, plus Higgsfield wrappers for generate/brandkit
- src/ui-ux-pro-max/scripts/lint.py — deterministic regex scanner with 12
  default anti-pattern rules, CSV-overridable via data/lint-rules.csv,
  exits non-zero on Critical/High (CI-friendly)
- cli/src/commands/verbs.ts — Node→Python dispatch, platform-aware
- cli/src/index.ts — registers all 8 verbs as `uipro` subcommands
- cli/assets/scripts/{verbs,lint}.py — synced for install-time delivery
- README.md — new positioning ("The UI quality layer for AI coding agents")
  + verb table front-and-center
- templates/base/skill-content.md — verb section so installed skills
  teach Claude/Cursor/Codex when to invoke verbs

Smoke-tested:
- verbs list → clean
- verbs audit "landing page" → real UX rules, severity-filtered
- lint <repo> → caught 2 real anti-patterns in the test target
- bun run build → 111 modules, 0 errors, 0.34 MB bundle
- node dist/index.js --help → all 8 verbs registered

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tight before/after section directly under the verb table showing real
output from uipro lint / audit / polish against a working Next.js
landing page. Three real CLI captures, no screenshots, no marketing
mock-ups — the tool's actual stdout.

The lint finding shown is genuine: caught a `>✓<` emoji-as-icon and a
raw hex gradient in the project's own scaffolded killer-landing demo.
The before→after loop ("agent generates → uipro lint catches → agent
fixes → ship") is the one-paragraph mental model for the whole tool.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant